我有一个基于文档的Cocoa应用程序。在运行时,我通过调用[NSBundle loadNibNamed:@"inspectorNIB" owner:self]
(其中self
是NSDocument
)从包中加载了一个额外的nib。
奇怪的是,当加载bundle成功时,它再次调用NSDocument
的{{1}}方法,导致不必要的第二次初始化。这是预期的行为吗?我怎么能抑制它?
答案 0 :(得分:3)
是的,如果在nib中引用了对象,则为每个加载的nib调用-awakeFromNib
。如果您想避免两次设置,可以设置BOOL
实例变量并进行检查:
if (!alreadyDidNibLoadStuff) {
// do nib load stuff
alreadyDidNibLoadStuff = YES;
}