我的应用程序中有一个非常烦人的错误。这让我发疯,我确信这超出了我的技能水平,因为我正在不断学习。
以下是该错误的初步概要:黑暗中的一枪 - 应用程序错误
但是我找到了一种方法来一致地重现错误(仅在设备上而不是在模拟器中)
首先创建一个新池并保存它。然后将20个空白时间整体加到一天中。保存它,这就是问题开始的地方。 (当您返回到主要详细信息视图时,表格视图已退出编辑模式并被告知这样做)。现在,如果您回到当天查看刚刚添加的时间条目,它们仍然存在。
如果您返回到列出所有池的主整体表格视图,现在返回到您添加它们消失的时间的那一天。
添加一次就可以了。加二十还是不省。
主菜单列出池:
细节图:
编辑视图:
时间编辑视图:
添加时间:
如果有更多的猜测,我将不胜感激。
NSZombie
支持并查看您是否在释放任何对象后使用它们。据我所知,这可以在模拟器和设备上打开。
最有可能的是,您未能在途中的某个地方保留某些物体。当一个对象被释放然后内存被重新用于其他用途时,您会遇到各种不良行为,包括崩溃或其他对象神秘的“消失”。
您可以尝试的一件事是将断点放入自定义类的 -dealloc 方法中。然后您可以看到它们是从哪里释放的。不过,最有可能的是,这最终会在 AutoreleasePool 耗尽时结束,这不会告诉你太多信息。
或者,考虑使用 Cocoa 中内置的一些内存调试工具。
该文档适用于 Mac OS X,但我认为所有这些至少都可以在 iPhone 模拟器中运行。我知道你的错误在模拟器中“不会发生”,但这实际上只意味着症状不同,而你没有注意到它们。
感谢您的所有回答。现在已经修复了。
对于那些感兴趣的人,我忘记在我的细胞子类的 XIB 中添加细胞标识符。
cellForRow: 方法因此每次都会创建一个新单元格。记忆很快就被填满了。然后,似乎我的应用程序自动尝试通过强制另一个 tableView 退出编辑模式而不正确管理我的实例来减少脂肪。
这又是一个内存问题。不是一直都是这样吗!!
线索是控制台中出现一次性 101 错误,表明我的应用程序使用了太多内存。哦,还有一个缓慢滚动的 tableView。