1

我正在尝试将多张照片(在应用程序的沙箱中)导入相机胶卷(保存的相册)。

我在后台执行一个选择器,从文件路径中读取数据,然后使用 UIImageWriteToSavedPhotosAlbum 完成操作。我现在正在使用 Instruments 对大图像进行测试,但我看不到任何显着的内存增加(最大活字节约为 8MB),但如果我尝试导入约 20 个图像,应用程序仍然会崩溃。它给了我一个内存警告,但我无法找出问题所在。

我还在从磁盘读取文件(并解密)的代码周围使用了@autoreleasepool。

在我的代码的另一部分中,我使用几乎相同的过程(加密数据)从 ALAssetsLibrary 导入图像,并且可以很好地处理 200 多个图像。没有内存警告,没有崩溃。

关于如何将图像批量写入保存的照片库的任何想法?

PS:我的导入方法中基本上有这个:

UIImageWriteToSavedPhotosAlbum(decryptedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

然后在 didFinishSaving 回调中,我再次调用导入方法,该方法通过要导入的文件路径数组。

它适用于较小的文件,但较大的文件会导致崩溃。

谢谢!

编辑:刚刚尝试加载大图像,[UIImage imageNamed:]应用程序仍然崩溃。所以我猜这是 UIImageWriteToSavedPhotosAlbum 方法的问题?我应该如何导入更大的图像?

4

1 回答 1

0

我最终使用了ALAssetsLibrary's 方法writeImageDataToSavedPhotosAlbum:metadata:completionBlock:,它完美无缺!没有内存警告和/或崩溃。

于 2012-09-05T08:16:42.207 回答