奇怪的 loadNibNamed 行为
Posted
技术标签:
【中文标题】奇怪的 loadNibNamed 行为【英文标题】:Strange loadNibNamed behaviour 【发布时间】:2011-01-23 14:50:27 【问题描述】:我有一个基于文档的 Cocoa 应用程序。在运行时,我通过调用[NSBundle loadNibNamed:@"inspectorNIB" owner:self]
(其中self
是NSDocument
)从包中加载一个额外的笔尖。
奇怪的是,当加载包成功时,它再次调用NSDocument
的awakeFromNib
方法,导致不必要的第二次初始化。这是预期的行为吗?怎么压制?
【问题讨论】:
【参考方案1】:是的,如果在 nib 中引用了对象,则会为每个加载的 nib 调用 -awakeFromNib
。如果你想避免设置两次,你可以设置一个BOOL
实例变量并做一个检查:
if (!alreadyDidNibLoadStuff)
// do nib load stuff
alreadyDidNibLoadStuff = YES;
【讨论】:
以上是关于奇怪的 loadNibNamed 行为的主要内容,如果未能解决你的问题,请参考以下文章