Xcode 7 警告 loadNibNamed:owner is deprecated: first deprecated in OS X 10.8

Posted

技术标签:

【中文标题】Xcode 7 警告 loadNibNamed:owner is deprecated: first deprecated in OS X 10.8【英文标题】:Xcode 7 warning loadNibNamed:owner is deprecated: first deprecated in OS X 10.8 【发布时间】:2016-03-20 05:42:43 【问题描述】:

首先,这个问题是针对用 Objective-C for Mac OSX Application 编写的 Xcode 项目。

我收到以下行的警告“loadNibNamed:owner is deprecated: first deprecated in OS X 10.8”:

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

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

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

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

【问题讨论】:

【参考方案1】:

来自 NSBundle 文档:

讨论

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

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

所以你需要像这样使你的***对象变得强大:

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

【讨论】:

以上是关于Xcode 7 警告 loadNibNamed:owner is deprecated: first deprecated in OS X 10.8的主要内容,如果未能解决你的问题,请参考以下文章

警告:更新到 xcode 7 后找不到选项的目录

Xcode 中针对 iOS 7 部署目标的 LaunchImage 警告

Xcode 7 警告!是为比被链接 (5.1) 更新的 iOS 版本 (5.1.1) 构建的

Xcode 7 警告 - 找不到选项的目录 - iPhoneSimulator9.0.sdk

在 Xcode 7 中清除所有 XIB / Storyboard 文件中所有警告的最快方法是啥

用户创建的警告在 XCode 7.1 中不再起作用。有替代方案吗? [复制]