1

システム アルバムに 5 回しかイメージを書き込めないことに非常に困惑しています。

UIImage *image = [UIImage imageNamed:@"icon.png"];
for (int i = 0; i < 6; i++) {
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}

i の値が 5 の場合、次のログを取得しました。

* -[NSKeyedUnarchiver initForReadingWithData:]: データは NULL です

API ドキュメントから 5 回ほど関連情報が見つかりませんでした。うーん…システムアルバムに5回以上連続して画像を書き込めるか?システムアルバムへの書き込みが速すぎませんか?それを行う別の方法はありますか?

お返事ありがとうございます。

4

1 に答える 1

1

image は自動解放変数です。ARCを使用していないと思います。最初に保持し、ループ後に解放しても失敗しますか?

編集:呼び出しを遅延メソッドに入れた場合、つまり:

[self performSelector:@selector(myUIImageWriteToSavedPhotosAlbum:) withObject:image afterDelay:0];

あなたも定義した場所:

- (void) myUIImageWriteToSavedPhotosAlbum:(UIImage *) image {
   UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}

書き込みは、試行ごとに実行ループを通過するだけでよい場合があります。

于 2012-08-02T15:01:11.953 に答える