2012-06-07 2 views
0

Можно ли сделать следующее?Можно ли установить значение вида в awakeFromNib?

// in AppController.h 
@interface AppController : NSObject 
{ 
    IBOutlet NSTextField *label; 
} 
@end 

// in AppController.m 
- (void)awakeFromNib 
{ 
    [label setIntValue:5]; 
} 

Или есть шанс, что label может быть еще не полностью инициализирован, когда awakeFromNib отправляется к экземпляру AppController?

ответ

0

Documentation говорит:

Важно
Поскольку порядок, в котором объекты создаются экземпляры из архива не гарантируется, ваши методы инициализации не должны отправлять сообщения на другие объекты в иерархии. Сообщения на другие объекты могут быть отправлены safely изнутри awakeFromNib - к тому времени он уверен, что все объекты были распакованы и инициализированы (хотя и не обязательно разбуженные, конечно).

В самом деле, awakeFromNib отправляется на все объекты перо создало и файл Владелец, после создания объектов и соединительных точек и действий завершено.

+0

Значит, это значит, что мой вышеприведенный код верен? – tajmahal

+0

Да, ваш код верен! – bijan

0

Я не уверен, что это безопасно.
Но вы должны использовать viewDidLoad: для любой установки вида после загрузки файла nib.

Смежные вопросы