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 中针对 iOS 7 部署目标的 LaunchImage 警告
Xcode 7 警告!是为比被链接 (5.1) 更新的 iOS 版本 (5.1.1) 构建的
Xcode 7 警告 - 找不到选项的目录 - iPhoneSimulator9.0.sdk