autorelease和retain导致消息发送到解除分配的消息

时间:2011-05-30 17:21:06

标签: iphone objective-c

我一直在接受这种随机的崩溃,其中我不知道如何重现。它发生在我浏览/使用应用程序一段时间,在这里和那里切换视图时我得到了这个:

enter image description here

首先,我不知道这个崩溃指的是哪个UIImage。我确实有崩溃报告,但我不知道如何阅读它。我想重现错误,但我不知道如何......似乎它是随机的。有人可以帮我调试吗?

2 个答案:

答案 0 :(得分:0)

如果不能重现失败,那将非常困难。

如果您无法重现它,我建议您使用Xcode选项“Build and Analyze”构建项目。事实上,由于这似乎是保留/释放的问题,“构建和分析”可以给你一些暗示事情变坏的暗示。顺便说一句,如果你不这样做,强烈建议,几乎是强制性的检查。

您可以尝试发布崩溃报告,但我怀疑它会有用。关键是找出UIImage被解除分配的位置以及原因,崩溃报告指的是在发布后使​​用UIImage的尝试,因此这可能是代码的不同部分。

如果您怀疑哪个类包含此UIImage,您可以发布一些代码,以便我们可以帮助您检查它。

作为有关如何重现此问题的有用提示,我还建议向模拟器发送内存警告。实际上,在这种情况下,所有未显示的UIViews都会被释放,这可能是你UIImage的罪魁祸首。所以,你发送它,看看崩溃是否再次发生......只是一个提示,无论如何......

答案 1 :(得分:0)

很难肯定地说些什么。这是我的猜测。

我看到你从外部来源“convore.com”获得了一些数据。当你说你随机得到错误时,我想这可能是由于从convore.com api收到的数据。可能有时候你没有从服务器获取图像,链接或图形,而你没有创建和图像,然后你试图保留它,导致错误。