跟踪内存警告源 - iOS

时间:2011-06-20 10:03:38

标签: ios memory warnings

我的应用程序中有一个奇怪的错误 - 当应用程序运行时,我有时会得到一个奇怪的行为,其中应用程序“反驳”并返回到第一个屏幕(就像再次调用ViewDidLoad一样)。它没有明确的逻辑(有时它会在应用程序运行几秒钟后发生,有时我可以潜伏几个小时而且不会发生这种情况。)

我怀疑问题与某些内存问题有关 - 当我使用调试器运行应用程序时,我可以在LOG中看到我在错误发生之前收到内存警告:收到内存警告。级= 1

  1. 是否有人熟悉此行为?意思是,应用程序在接收内存警告时被“反驳”了吗?
  2. 由于我不知道导致内存问题的原因,有没有人知道我应该如何跟踪它?任何推荐的工具吗?
  3. 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

如果出现内存警告,可能会释放一些屏幕外视图,然后重新加载。如果你没有正确处理这种情况(即初始化新的),你看到的行为是可能的。模拟器可以向您的应用程序发送内存警告 - 因此我建议您使用您的应用程序一分钟(不同的视图,层次结构等),然后触发警告并查看会发生什么。

答案 1 :(得分:1)

使用仪器工具在运行时查找泄漏和对象大小。当我们使用UIImagePickerController来选择图像时,有时也会出现内存警告。还使用clang静态分析器进行静态分析有一个由nikita zhuk写的gui应用程序在google上找到你会找到该应用程序。最后但并非最不重要的是阅读了一些内存管理指南。

<强>更新

仪器内置于xcode中。通过从下拉菜单中选择泄漏来运行项目。在谷歌搜索如何使用乐器。

这是截图

enter image description here

对于google objective-c内存管理的内存管理搜索,你会得到一堆文章。另请阅读objective-c 2.0属性。