我的应用程序中有一个奇怪的错误 - 当应用程序运行时,我有时会得到一个奇怪的行为,其中应用程序“反驳”并返回到第一个屏幕(就像再次调用ViewDidLoad一样)。它没有明确的逻辑(有时它会在应用程序运行几秒钟后发生,有时我可以潜伏几个小时而且不会发生这种情况。)
我怀疑问题与某些内存问题有关 - 当我使用调试器运行应用程序时,我可以在LOG中看到我在错误发生之前收到内存警告:收到内存警告。级= 1
非常感谢任何帮助。
答案 0 :(得分:2)
如果出现内存警告,可能会释放一些屏幕外视图,然后重新加载。如果你没有正确处理这种情况(即初始化新的),你看到的行为是可能的。模拟器可以向您的应用程序发送内存警告 - 因此我建议您使用您的应用程序一分钟(不同的视图,层次结构等),然后触发警告并查看会发生什么。
答案 1 :(得分:1)
使用仪器工具在运行时查找泄漏和对象大小。当我们使用UIImagePickerController来选择图像时,有时也会出现内存警告。还使用clang静态分析器进行静态分析有一个由nikita zhuk写的gui应用程序在google上找到你会找到该应用程序。最后但并非最不重要的是阅读了一些内存管理指南。
<强>更新强>
仪器内置于xcode中。通过从下拉菜单中选择泄漏来运行项目。在谷歌搜索如何使用乐器。
这是截图
对于google objective-c内存管理的内存管理搜索,你会得到一堆文章。另请阅读objective-c 2.0属性。