我一直在尋找通過無數的帖子關於這個錯誤:
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
BoxView
是UIView
一個子類,而UIKit
框架已被列入BoxView.h
已經在被導入。視圖控制器
的視圖控制器包含以下代碼:
-(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.m ..哪裏會發現tickbox?我正在瀏覽構建設置,但沒有看到它..我正在使用舊版本的X-Code,X-Code 3,所以我不認爲我的版本符合你發送的截圖 – cms
哦其實,我只是找到了它。不知道是否在Xcode 4中,但在Xcode 3中,您可以將.m文件拖放到目標文件中。 – cms
有時,當我將文件添加到項目中時,它們在項目生成時不會被編譯。在Xcode 4中,我明確地將它們添加到「構建階段」 - >「編譯源代碼」下。爲什麼這些不是默認設置(有時),我不知道。 – wcochran