我有一个iPhone应用程序。它似乎运行良好。当我连接到配置的iPhone到Xcode并运行应用程序时,控制台登录管理器窗口,在使用主页键退出应用程序时总是抱怨分段错误。
有没有其他人看过这个,你知道问题可能是什么吗?我使用一个线程在后台加载网页,但我在退出时停止了线程。
我的应用确实保存了一些持久性信息。当我使用构建和分析函数时,我得到了2个潜在的内存泄漏,但在每种情况下,我都在分配一个对象并将其保存在一个数组中。
任何想法,还是这是正常的?
答案 0 :(得分:7)
尝试使用NSZombieEnabled运行您的应用程序。这将告诉您是否过度释放任何对象。要启用僵尸,请执行以下操作:
- 选择项目>编辑Active Executable以打开可执行信息 窗口。
- 点击参数。
- 单击“要在中设置的变量”中的添加(+)按钮 环境“部分。
- 在“名称”列中输入NSZombieEnabled,在“值”列中输入“是”。
- 确保选中NSZombieEnabled条目的复选标记。
醇>
答案 1 :(得分:0)
退出时,您的应用程序可以过度释放对象,尝试在释放它之前转储每个对象,或者在dealloc方法中进行一些调试。
答案 2 :(得分:0)
也许你发布一些对象比保留计数多一些。在您找到罪魁祸首之前,在-release
方法(或其他地方)中注释掉dealloc
次来电。
然后取消注释该调用并查看代码中的其他位置,您尝试过度释放该对象。
如果您正在使用便捷方法,例如(例如[NSString stringWithFormat:@"..."]
)而不是alloc-init
方法(例如[[NSString alloc] initWithFormat:@"..."]
),则生成的便利对象将自动释放,不应手动释放
答案 3 :(得分:0)
我的问题是来自cydia的uididfaker和locholic,并在卸载它们之后在我的iphone上运行xcode就好了。