奇怪的loadNibNamed行为

时间:2011-01-23 14:50:28

标签: objective-c cocoa nib nsdocument nsbundle

我有一个基于文档的Cocoa应用程序。在运行时,我通过调用[NSBundle loadNibNamed:@"inspectorNIB" owner:self](其中selfNSDocument)从包中加载了一个额外的nib。

奇怪的是,当加载bundle成功时,它再次调用NSDocument的{​​{1}}方法,导致不必要的第二次初始化。这是预期的行为吗?我怎么能抑制它?

1 个答案:

答案 0 :(得分:3)

是的,如果在nib中引用了对象,则为每个加载的nib调用-awakeFromNib。如果您想避免两次设置,可以设置BOOL实例变量并进行检查:

if (!alreadyDidNibLoadStuff) {
    // do nib load stuff
    alreadyDidNibLoadStuff = YES;
}