画像をカメラロールに保存しようとしています。これは実際には素晴らしく機能していましたが、他の作業をしなければならなかったので、今はプロジェクトに戻ってiOS 6用に更新し、この機能はiOS6ではまったく機能しなくなりました。
私は2つのアプローチを試しましたが、どちらもNSErrorオブジェクトなしでサイレントに失敗しています。まず、UIImageWriteToSavedPhotosAlbum:
UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
// Callback
-(void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
// error == nil
}
...およびALAssetsLibraryアプローチ:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:[img CGImage]
orientation:(ALAssetOrientation)[img imageOrientation]
completionBlock:^(NSURL *assetURL, NSError *error)
{
// assetURL == nil
// error == nil
}
また、[ALAssetsLibrary authorizationStatus] == ALAuthorizationStatusAuthorized
trueと評価されます
シミュレーターでは、アプリは[設定]>[プライバシー]>[写真]セクションに表示されませんが、実際のiPadでは、アプリに写真へのアクセス許可があることが表示されます。(また、追加するだけです:上記の最初のアプローチは私が以前に使用したものでした-それは実際のデバイスとシミュレーターで同様に機能しました、問題ありません)。
また、これをメインスレッドで実行して、何かが変わったかどうかを確認しました。違いはありません。以前はバックグラウンドで実行していましたが、以前は(シミュレーターとデバイスの両方で)正常に動作していました。
誰かが光を当てることができますか?