奇怪的 loadNibNamed 行为
我有一个基于文档的 Cocoa 应用程序。在运行时,我通过调用 [NSBundle loadNibNamed:@"inspectorNIB"owner:self]
从包中加载额外的笔尖(其中 self
是 NSDocument)。
奇怪的是,当加载包成功时,它再次调用 NSDocument
的 awakeFromNib
方法,导致不必要的第二次初始化。这是预期的行为吗?我怎样才能抑制它?
I have a document-based Cocoa app. During runtime, I load an additional nib from the bundle by invoking [NSBundle loadNibNamed:@"inspectorNIB" owner:self]
(where self
is the NSDocument
).
Strangely enough, while loading the bundle succeeds, it invokes the NSDocument
's awakeFromNib
method again, causing an unnecessary second initialisation. Is this expected behaviour? How can I suppress it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,如果在 nib 中引用了该对象,则会为加载的每个 nib 调用
-awakeFromNib
。如果您想避免进行两次设置,可以设置一个BOOL
实例变量并进行检查:Yes,
-awakeFromNib
is called for each nib that's loaded if the object is referenced in the nib. If you want to avoid doing setup twice, you can set aBOOL
instance variable and do a check: