奇怪的 loadNibNamed 行为

Posted

技术标签:

【中文标题】奇怪的 loadNibNamed 行为【英文标题】:Strange loadNibNamed behaviour 【发布时间】:2011-01-23 14:50:27 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于奇怪的 loadNibNamed 行为的主要内容,如果未能解决你的问题,请参考以下文章

parseInt() 函数的奇怪行为

QLcdNumber 奇怪的行为

iOS奇怪的委托行为?

AdditionalSafeAreaInsets 的奇怪行为

UITableView 奇怪的行为

UIPopoverController 奇怪的行为