我的应用程序(arc,ios5)有时会在我拍照并保存到 CoreData
后崩溃。使用Instruments我发现在crash前有内存警告,于是我试图找出内存是如何使用的。
我的应用程序将行程存储在 CoreData 中(总共 200MB),每个行程都有数百个 CLLocation
对象和数十个 UIImage
对象。
每次我通过pushViewController查看一次行程详情,内存使用量都会增加;但在我 popViewController 之后,内存使用量仍然存在。
我认为有几个嫌疑:
- CoreData 缓存,但我不知道如何清除它;
- 详细 View Controller ,因为我没有看到在每个 popViewController 之后调用任何 viewDidUnload;
经过一些测试,我很困惑,即使我手动调用 viewDidUnload,内存使用量仍然存在。
我还在 ios5.0 模拟器中为我的应用程序测试了内存泄漏工具,它很干净。
最佳答案
由于内存问题,不建议将图片存储在coredata中。检查您是否可以将其存储在文档文件夹中,并将图像名称/路径存储在您的核心数据中。大多数情况下应该可以解决内存问题。
这里有一些关于这个的帖子 CoreData (for iphone) storing images和 Core Data - Storing Images (iPhone)
关于objective-c - 调用 pop View Controller 方法时 iphone 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12832754/