我一直在浏览关于此错误的无数帖子:

Undefined symbols:
"_OBJC_CLASS_$_BoxView", referenced from:
  objc-class-ref-to-BoxView in ViewMovingViewController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
BoxViewUIView的子类,并且包括UIKit框架。 BoxView.h已导入到ViewController中。

ViewController包含以下代码:
-(void) addBoxViewAtLocation:(CGPoint)point {
    CGRect rect;
    rect.origin.x = point.x;
    rect.origin.y = point.y;
    rect.size.width = 80;
    rect.size.width = 40;
    BoxView *newView = [[BoxView alloc] initWithFrame:rect];
    newView.backgroundColor = [UIColor yellowColor];
    [mainView addSubview:newView];
}
BoxView包含以下代码:
- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        // no further initialization
    }
    return self;
}

这是导致错误的行,来自上面的代码:
BoxView *newView = [[BoxView alloc] initWithFrame:rect];

当我在该行中将BoxView更改为UIView时,错误消失了。有人知道我需要在这里更改吗?我浏览了很多关于此的文章,但是大多数答案都说它与链接有关,但是我尝试勾选和取消勾选某些框都没有成功。我想知道错误是否在我的代码中?任何建议,将不胜感激!

最佳答案

通常,当BoxView的代码未正确编译到目标中时,会发生这种情况。

您需要确保正在构建的目标的BoxView.m实现文件的对应复选框处于选中状态。您的问题表明您已经尝试过此操作,但这是出于清晰起见的截图(来自Xcode 4)。

“清洁和构建”也不会造成伤害。

关于objective-c - undefined symbol : "_OBJC_CLASS_$ error,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6960543/

10-08 23:11