RSS

iPhone:画像をライブラリに保存するメソッドUIImageWriteToSavedPhotosAlbumの注意事項

画像(UIImage)を自分の画像ライブラリに保存するメソッドUIImageWriteToSavedPhotosAlbumを使用する場合には,注意が必要.保存が非同期処理で行われるので,呼び出し後すぐにアプリを終了すると画像は保存されない.これを防ぐためには,引数に保存完了を知らせるメソッドを与えればよい.
// 完了を知らせるメソッド
- (void) savingImageIsFinished:(UIImage *)_image
didFinishSavingWithError:(NSError *)_error
contextInfo:(void *)_contextInfo
{
NSLog(@"finished"); //仮にコンソールに表示する
}

// 保存処理を持つメソッド
-(void) hogehoge
{
...略...
// savedImageをライブラリに保存する
UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(savingImageIsFinished:didFinishSavingWithError:contextInfo:), nil);
...略...
}

これで小一時間ほど悩んでましたが,公式ドキュメントに思いっきり書いてありました.始めからよく読んでおけばよかった.
The use of the completionTarget, completionSelector, and contextInfo parameters is optional and necessary only if you want to be notified asynchronously when the function finishes writing the image to the user’s Saved Photos album. If you do not want to be notified, pass nil for these parameters.

Bookmark and Share

0 コメント: