iphone中的对象释放问题

Posted

技术标签:

【中文标题】iphone中的对象释放问题【英文标题】:Object release problem in iphone 【发布时间】:2010-11-10 07:59:15 【问题描述】:

我正在使用导航控制器从一个视图移动到另一个视图... 我有 3 个视图

栈(导航控制器)中的排列如下

view1--------->view2------------>view3

在 view3 上,我正在加载一个 webview,它根据用户的当前位置显示信息...

问题是当我点击 view3 上的后退按钮时(加载期间),我的应用程序崩溃

我的主要问题是当我按下返回导航按钮时对象被释放..这会出错..

我知道可以通过关闭用户交互来修复它。

但是在慢速连接中加载可能需要很长时间(因为我的应用首先获取位置,然后将其发送到谷歌并获取位置名称,然后再次发送网络请求以显示一些数据)并且在这段长时间内用户可能会令人沮丧..

还有其他选择吗? 请帮助...我即将修复我的应用程序..只剩下这个问题...

【问题讨论】:

您能否提供崩溃的完整回溯,以及崩溃点周围的代码?这将有助于我们诊断问题。 @Ryan--错误是程序接收到的信号:“EXC_BAD_ACCESS”。 developer.apple.com/library/ios/navigation 【参考方案1】:

尝试使用 NSZombieEnabled 选项,以发现您尝试向哪个已发布对象发送消息。

在 Xcode 项目的可执行文件组中双击一个可执行文件。 单击参数选项卡。 在“要在环境中设置的变量:”部分中,创建一个名为“NSZombieEnabled”的变量并将其值设置为“YES”。

【讨论】:

+1-在此之后是消息 2010-11-10 15:23:40.993 TotalLocksmith[8222:207] *** -[CarCenters respondsToSelector:]:消息发送到已释放的实例 0x7c59b20 这里汽车中心是我的课 不应释放的对象类型(或所需变量)是 CarCenters。 如果 CarCenters 是类型,通过方法调用堆栈找到 CarCenters 类型的变量。

以上是关于iphone中的对象释放问题的主要内容,如果未能解决你的问题,请参考以下文章

iphone:多次自动释放对象

iPhone 开发 - 释放一个自动释放的对象

iPhone:copyWithZone:在返回之前释放一个对象?

iphone内存管理问题

iPhone - 如果在自动释放后保留会发生啥?

错误 0x1c8250:iphone 中的双倍可用内存