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