У меня есть класс, основанный на UIView
, который имеет свой собственный XIB. Позволяет назвать этот класс MyClass
. Поэтому у меня есть MyClass.xib
, MyClass.h
и MyClass.m
.Пытается загрузить наконечник из конструктора интерфейса
У меня есть объект UIView на раскадровке, и я установил класс этого объекта в MyClass
.
Я создал новый X12 X12 и XIB, я изменил класс владельца файла на MyClass
. Я не знаю, нужно ли мне делать больше соединений внутри XIB.
То, что я хочу это: раскадровка нагрузки MyClass.m
и что нагрузки MyClass.xib
, по этой причине у меня есть этот код инициализации:
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
NSString *className = NSStringFromClass([self class]);
self.view = [[[NSBundle mainBundle] loadNibNamed:className owner:self options:nil] firstObject];
[self addSubview:self.view];
return self;
}
return nil;
}
Проблема в том, что этот код попадает в бесконечный цикл. Я думаю, loadNibNamed
снова вызовет initWithCoder:
и приложение выйдет из строя.
Как это сделать? Почему цикл и есть ли какие-либо соединения, которые должны быть сделаны внутри xib?
Я не помню правильный способ сделать это прямо сейчас, но короткая история в том, что 'loadNibNamed:' 'фактически называет initWithCoder:', так что объясняет ваш бесконечный цикл мгновенно ... – nhgrif