Xcode 7警告loadNibNamed:不推荐使用者:首先在OS X 10.8中弃用

时间:2016-03-20 05:42:44

标签: objective-c xcode macos nib

首先,这个问题适用于用于Mac OSX应用程序的Objective-C编写的Xcode项目。

我收到警告“loadNibNamed:owner已弃用:首先在OS X 10.8中弃用”以获取以下行:

[NSBundle loadNibNamed:@"StartMyDialog" owner:self];

然而它现在似乎仍然可以正常工作。经过一些谷歌搜索后,我找到了以下解决方案:

[[NSBundle mainBundle] loadNibNamed:@"StartMyDialog" owner:self topLevelObjects:nil];

这会删除警告,但是当我运行项目时,即使上述行返回TRUE(表示nib文件已成功加载),也不会出现nib视图。还有什么我需要做才能让它出现吗?感谢。

1 个答案:

答案 0 :(得分:1)

来自NSBundle文档:

  

<强>讨论

     

与遗留方法不同,对象遵循标准的可可内存管理规则;有必要通过使用IBOutlets或保持对数组的引用来保持对它们的强引用,以防止取消分配nib内容。

     

对顶级对象的出口应该是强引用,以证明所有权并防止重新分配。

所以你需要让你的顶级对象如此强大:

@property (nonatomic, strong) IBOutlet NSWindow *window;