拍摄照片并保存到CoreData
后,我的应用程序(arc,ios5)有时会崩溃。使用 Instruments 我发现在崩溃之前有内存警告,所以我试图找出如何使用内存。
我的应用程序存储CoreData中的行程(总共200MB),每次行程都有数百个CLLocation
个对象和数十个UIImage
个对象。
每次我通过 pushViewController 查看一个旅行细节时,内存使用量会增长;但在 popViewController 之后,内存使用量仍然存在。
我认为有几个嫌犯:
经过一些测试后,我很困惑,即使我手动调用 viewDidUnload ,内存使用量仍然存在。
我还在我的应用程序的ios5.0模拟器中测试了内存泄漏仪器,它很干净。
答案 0 :(得分:1)
由于内存问题,不建议将图像存储在coredata中。检查您是否可以将其存储在文档文件夹中,并将图像名称/路径存储在您的coredata中。大多数应该解决内存问题的案例。
以下是有关此CoreData (for iphone) storing images和Core Data - Storing Images (iPhone)
的一些帖子答案 1 :(得分:1)
首先,不要使用核心数据来存储图像数据。在iOS 5及更高版本上,您可以在属性的文件检查器上检查属性“允许外部存储”。您还可以将图像保存在文档目录中,并使用核心数据保存图像的路径。将这些图像显示到界面时,将它们缓存在NSCache上,以便在内存警告开始弹出时清除这些图像。在低内存警告期间,更改管理这些图像的方法将对内存响应产生重大影响。