应用程序在UIViewController版本上崩溃

时间:2012-06-06 20:36:53

标签: ios xcode

这可能是一个noob问题,但它让我发疯。我正在开发一个应用程序,以编程方式在主视图中加载子视图(而不是在示例代码中)。子视图是一个IEAudioChannelViewController实例,但是当我尝试按如下方式释放对象时应用程序崩溃:

IEAudioChannelViewController *audiochannel = (IEAudioChannelViewController *) [sb instantiateViewControllerWithIdentifier:@"AudioChannel"];
NSLog(@"Audio channel: %@", audiochannel);
[audiochannel release]; <-- here the crash!

如果我删除了它的释放线,

知道为什么会这样吗? (禁用自动引用计数)

2 个答案:

答案 0 :(得分:2)

嗯。这是因为您致电release。仅当您是对象的所有者时才致电release - 例如何时使用alloc,copy,new,retain关键字。

答案 1 :(得分:1)

您正在释放自动释放的对象,请删除

[audiochannel release]

因为instantiateViewControllerWithIdentifier返回一个自动释放的对象 规则总是相同的,如果你不分配,新的,保留或复制一个对象然后不要在它上面调用发布