iOS loadNibNamed путаница, что является лучшей практикой?

Я знаком с большей частью процесса создания XIB для моего собственного подкласса UIView, но не все работает для меня должным образом - это 'В основном это связано с подключением IBOutlets. Я могу заставить их работать, как кажется, окольным путем.

Моя установка такова:

У меня есть MyClass.h и MyClass.m. У них есть IBOutlets для UIView (называемый view) и UILabel (называемый myLabel). Я добавилПосмотреть' свойство, потому что некоторые примеры в Интернете, казалось, подсказывают, что вам это нужно, и это фактически решило проблему, из-за которой я получал сбой, потому что это не моглоя не могу найти свойство view даже в родительском классе UIView.У меня есть файл XIB с именем MyClass.xib, и его файл 's Пользовательский класс владельца - MyClass, который правильно заполнен после того, как мои .h и .m для этого класса существуют.

Мой метод инициации - это то, где яУ меня есть проблемы.

Я пытался использовать NSBundle mainBundle's 'loadNibNamed» метод и установите владельца на 'самость»в надежде, что яя буду создавать экземпляр представления ия автоматически сопоставлю его выходы с тем, что есть в моем классе (я знаю, как это сделать, и яЯ осторожен с этим). Я тогда думал, что яхочу сделатьсамость» равный подпредставлению с индексом 0 в этом пике, а не делать

self = [super init];

или что-нибудь в этом роде.

Я чувствую, что яЯ делаю что-то здесь не так, но примеры в Интернете имели аналогичные вещи, происходящие в методе init, но они присваивают это подпредставление 0 свойству представления и добавляют его как дочерний элемент - но разве это не в сумме два экземпляра MyClass? Один по существу не связан с IBOutlets, содержащий дочерний MyClass, инстанцированный через loadNibNamed? Или, в лучшем случае, это не экземпляр MyClass с дополнительным посредником UIView, содержащий все IBOutlets, которые я изначально хотел, как прямые потомки MyClass? Это вызывает небольшое раздражение, когда дело доходит до таких вещей, как instanceOfMyClass.frame.size.width, так как он возвращает 0, когда дочерний UIView, который 's был введен возвращает реальный размер кадра, который я искал.

Это то, что яя делаю неправильно, что явозиться с loadNibNamed внутри метода init? Должен ли я делать что-то более подобное?

MyClass *instance = [[MyClass alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:instance options:nil];  

Или вот так?

MyClass *instance = [[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:nil options:nil] objectAtIndex:0]; 

Заранее спасибо за любую помощь.

Ответы на вопрос(3)

Ваш ответ на вопрос