我通过UIImagePickerController读取了一些内存泄漏问题,所以我将代码更改为使用成员变量,并且能够使用相机拍摄多张图片。然而,我发现拍照需要花费更长时间,最终它会在大约25张照片中崩溃。
我在didFinishPickingMediaWithInfo中的照片后做了两件事,
1)缩小图像并显示(50x50) 2)将320x460保存到CoreData
我没有发布任何UIImage,因为它位于自动释放池中。
我应该怎么做才能让拍照继续下去?
以下是崩溃日志(崩溃日志类型列为低内存)
CrashReporter Key: 8e197e26271ae3c2c4d3e725807d023e3c2354cb OS Version: iPhone OS 3.0 (7A341) Free pages: 251 Wired pages: 10127 Purgeable pages: 0 Largest process: Journal Processes Name UUID Count resident pages Journal 8960 (jettisoned) (active) debugserver 130 MobilePhone 529 (jettisoned) syslog_relay 53 notification_pro 54 DTMobileIS 2285 notification_pro 53 ptpd 276 mediaserverd 252 debugserver 77 debugserver 78 SpringBoard 2470 (active) notifyd 80 BTServer 123 CommCenter 262 accessoryd 84 configd 70 configd 266 fairplayd 67 mDNSResponder 89 lockdownd 252 syslogd 82 launchd 70
答案 0 :(得分:0)
UIImage
,或者使用自己的UIImage
打包给您自动释放NSAutoreleasePool
的电话,以便控制其生命周期?答案 1 :(得分:0)
这个问题已经很老了,所以希望已经解决了,但考虑了两点:
我会考虑将您的图像缓存到文件系统,直到再次需要它们为止。基本上遵循这个过程:
根据需要重复。
最终可能会耗尽磁盘空间,但是你将拥有比内存更多的可用磁盘空间,并且你总是可以从磁盘中清除不需要的映像或强迫用户在其他一些磁盘空间中处理它们方便的方式(例如上传到云端)。