複数のファイルを保存するとき、assetLibraryのアクセスが非同期なせいで落ちる。
他に方法があるのかもしれないが、再帰で処理。
- (void)save:(NSMutableArray *)images {
UIImage *img = [images lastObject];
if (img == nil) {
return;
}
if (self.assetLibrary == nil) {
NSLog(@"assetLibrary is nill");
return;
}
[self.assetLibrary writeImageToSavedPhotosAlbum:img.CGImage
metadata:nil
completionBlock:^(NSURL *assetURL, NSError *error) {
[images removeLastObject];
if ( [images count] == 0 ) {
// 完了メッセージ出したりとか
}
[self save:images];
}
];
}
0 件のコメント:
コメントを投稿