0

在对仅在 iOS7 上发生的崩溃进行故障排除时(iOS6 很好),该应用程序在一条无助于故障排除的线路上崩溃了几次,但最终在类似[object release].

在我删除违规行后,崩溃消失了。

旧代码:

[imageView removeFromSuperview];
[imageView release];
imageView = nil;
imageView = [[UIImageView alloc] initWithImage:image];
[self addSubview:imageView];

新代码:

[imageView removeFromSuperview];
//[imageView release];
imageView = nil;
imageView = [[UIImageView alloc] initWithImage:image];
[self addSubview:imageView];

堆栈在这里显示崩溃:objc_msgSend ()

如果有人能用旧代码解释为什么它在 iOS7 上崩溃以及我做错了什么,我将不胜感激?另外我想了解为什么它没有在 iOS6 上崩溃。

4

1 回答 1

0

尝试启用 NS Zombies 以检查您是否没有尝试过度释放它,这听起来像您。您应该在释放它之前检查 imageView 是否不是 nil :)

如果可以的话,我建议您搬到 ARC。

于 2013-10-17T23:38:42.763 回答