2011-01-23 59 views
0

我有一个基于文档的Cocoa应用程序。在运行期间,我通过调用[NSBundle loadNibNamed:@"inspectorNIB" owner:self](其中selfNSDocument)从该包加载另一个笔尖。奇怪的loadNib命名行为

奇怪的是,当加载包成功时,它再次调用NSDocumentawakeFromNib方法,导致不必要的第二次初始化。这是预期的行为?我怎样才能压制它?

回答

3

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

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