Неопределенные символы: ошибка _OBJC_CLASS_ $ - PullRequest
21 голосов
/ 05 августа 2011

Я просматривал бесчисленные сообщения об этой ошибке:

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 было импортировано в 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 в этой строке, ошибка исчезает.Кто-нибудь знает, что мне нужно изменить здесь?Я просмотрел много постов по этому поводу, но большинство ответов говорят, что это связано со ссылками, но я пытался поставить галочки и снять галочки с некоторых полей безуспешно.Мне интересно, есть ли ошибка в моем коде?Любые предложения будут оценены!

Ответы [ 2 ]

43 голосов
/ 05 августа 2011

Как правило, это происходит, когда код для BoxView неправильно компилируется в вашу цель.

identity editor screenshot

Вы должны убедиться, что для создаваемой цели установлен соответствующий флажок для файла реализации BoxView.m. Ваш вопрос говорит о том, что вы пробовали это, но вот снимок экрана (из Xcode 4) просто для ясности.

«Чистота и строй» тоже никогда не причиняют вреда.

1 голос
/ 29 ноября 2013

Я просто хочу добавить, что ответ Бена Мошера совершенно верный. Но есть и другой способ включить файлы для создания в настройках Target.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...