Objective c 奇怪的行为
我有一个基于文档的Cocoa应用程序。在运行期间,我通过调用Objective c 奇怪的行为,objective-c,cocoa,nib,nsdocument,nsbundle,Objective C,Cocoa,Nib,Nsdocument,Nsbundle,我有一个基于文档的Cocoa应用程序。在运行期间,我通过调用[NSBundle loadNibNamed:@“inspectorNIB”owner:self](其中self是NSDocument)从bundle中加载一个额外的nib 奇怪的是,当加载包成功时,它再次调用NSDocument的awakeFromNib方法,导致不必要的第二次初始化。这是预期的行为吗?如何抑制它?是的,如果对象在nib中引用,则为加载的每个nib调用-awakeFromNib。如果要避免执行两次设置,可以设置BOOL
[NSBundle loadNibNamed:@“inspectorNIB”owner:self]
(其中self
是NSDocument
)从bundle中加载一个额外的nib
奇怪的是,当加载包成功时,它再次调用
NSDocument
的awakeFromNib
方法,导致不必要的第二次初始化。这是预期的行为吗?如何抑制它?是的,如果对象在nib中引用,则为加载的每个nib调用-awakeFromNib
。如果要避免执行两次设置,可以设置BOOL
实例变量并进行检查:
if (!alreadyDidNibLoadStuff) {
// do nib load stuff
alreadyDidNibLoadStuff = YES;
}
是的,如果对象在nib中引用,则为加载的每个nib调用
-awakeFromNib
。如果要避免执行两次设置,可以设置BOOL
实例变量并进行检查:
if (!alreadyDidNibLoadStuff) {
// do nib load stuff
alreadyDidNibLoadStuff = YES;
}