我正在编写一个应用程序,它将从URL中获取多个图像,将它们转换为UIImage,然后将它们添加到照片库,然后添加到自定义相册。我不相信有可能将它们添加到自定义相册中,而不会将其添加到相机胶卷中,因此我认为它是不可能的(但如果可能,这将是理想的)。在iOS 6(自定义相册)中快速保存多个图像
我的问题是,我使用this site的代码,它确实有效,但是一旦它处理了较大的照片,它就会返回一些'Write Busy'。如果我将函数复制到自己的完成代码中,然后再次在下一个代码中等等,直到6(我看到的最多的是3-4,但我不知道图像和我可以得到一些非常大的图像) - 这导致了这样的问题,即它们并未全部包含在自定义专辑中,因为它们在现阶段也出错,并且没有阻止它重复。
我明白,实际的图像保存被移动到后台线程(虽然我没有专门设置这一点),因为我的代码返回,所有完成之前错误开始出现,但理想情况下,我需要排队图像以保存在单个后台线程上,所以它们同步发生,但不冻结UI。
我的代码如下所示:
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:singleImage]]];
[self.library saveImage:image toAlbum:@"Test Album" withCompletionBlock:^(NSError *error) {
if (error!=nil) {
NSLog(@"Error");
}
}];
我已经删除了代码的重复,否则代码示例会很长!它以前是NSLog代码存在的地方。
对于我的测试样本,我正在处理25个图像,但这可能很容易达到200个左右,并且可能分辨率非常高,所以我需要一些能够可靠地反复执行此操作而不会丢失多个图像的东西。
感谢 罗布
感谢您的回答,不幸的是我不熟悉信号量,但我会做一些阅读,因为它们看起来很有用。我只在一周前开始! – 2013-03-04 19:57:15
这是一个很好的链接,我认为http://mikeash.com/pyblog/friday-qa-2009-09-25-gcd-practicum.html但它有点高级。 – Ultrakorne 2013-03-04 21:53:22