在awakeFromNib中设置视图值是否安全?

时间:2012-06-07 13:29:38

标签: macos cocoa

执行以下操作是否安全?

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

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

或者,当label实例发送awakeFromNib时,AppController是否可能尚未完全初始化?

2 个答案:

答案 0 :(得分:0)

我不确定它是否安全。
但是,在加载nib文件后,您应该使用viewDidLoad:进行任何视图设置。

答案 1 :(得分:0)

Documentation说:

  

重要
    由于无法保证从归档实例化对象的顺序,因此初始化方法不应将消息发送到层次结构中的其他对象。 可以从awakeFromNib中安全地发送其他对象的消息 - 这时确保所有对象都已归档并初始化(当然,当然不一定被唤醒)。< / p>

事实上,在创建对象并连接插座和操作完成后,awakeFromNib将发送到nib创建的所有对象文件的所有者。