首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可可NSBundle loadNibNamed不推荐

可可NSBundle loadNibNamed不推荐
EN

Stack Overflow用户
提问于 2015-07-22 14:09:59
回答 1查看 1.3K关注 0票数 0

我正在开发一个可可应用程序,我注意到NSBundle loadNibNamed是不推荐的。

我试图使用一个工作表来显示一些配置选项。我使用的是一个AppController,而Config表是一个单独创建的NIB。

这是我的密码。

代码语言:javascript
复制
- (IBAction)showConfig:(id)sender{

   if (!_config) {
      [NSBundle loadNibNamed:@"Config" owner:self];
   }
   [NSApp beginSheet:self.config modalForWindow:[[NSApp delegate] window] modalDelegate:self didEndSelector:NULL contextInfo:NULL];
}

使用该代码,配置表将完全打开和关闭。

当我将这个[NSBundle loadNibNamed:@"Config" owner:self];切换到[[NSBundle mainBundle] loadNibNamed:@"Config" owner:self topLevelObjects:nil];时,配置表仍然工作正常。

我真正的问题是什么时候我想关闭它。该应用程序崩溃,引发此错误:

Thread 1:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

这是我的IBAction来关闭配置表。

代码语言:javascript
复制
- (IBAction)closeConfig:(id)sender{
   [NSApp endSheet:self.config];
   [self.config close];
   self.config = nil;
}

跳过不推荐的行后,需要做什么才能正确地关闭配置表?

我在运行约塞米蒂和Xcode 6.4。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-23 03:59:09

应用程序委托类中的window属性是weak吗?如果是,请参见this answer。您现在使用的不建议使用的方法要求您的控制器具有对顶级对象的强引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31565586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档