0

1 回のボタン操作で、いくつかの画像セットをフォト ギャラリーに保存する必要があります。

for (j=85; j<100; j++)
       {
           UIImage *saveImage=[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",j]];
           UIImageWriteToSavedPhotosAlbum(saveImage,self,nil,nil);
       }

上記のコードを使用します。画像名は 85.png で始まり、100.png で終わります。4 つまたは 5 つの画像を保存した後、次のように出力ウィンドウにいくつかの行が表示されます。

-[NSKeyedUnarchiver initForReadingWithData:]: data is NULL

誰でもこの問題を解決できますか?

4

1 に答える 1

0

少し遅れて Save メソッドを呼び出します。フォト ギャラリーに画像を保存するには、しばらく時間がかかります。また、複数の画像を連続して保存すると、処理が上書きされ、画像を保存する方法が機能しません。

そのため、画像ごとに少なくとも 0.5 秒遅らせてください。私の場合はこれを使用しましたが、以下の方法を参照してください...

最初に宣言する

NSInteger frameCount; 
NSTimer pauseTimer;

グローバルに。そしてメソッド名を作ります

-(void)startTimer;

保存ボタンをクリックして、このメソッドを呼び出します

-(void)yourSaveButtonClick:(id)Sender
{
    [self startTimer];
}

-(void)startTimer
{
    frameCount = 85;
pauseTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(myFunctionForSaveToPhoneLibrary) userInfo:nil repeats:YES];

}

-(void)myFunctionForSaveToPhoneLibrary
{

UIImage *saveImage=[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",frameCount]];
UIImageWriteToSavedPhotosAlbum(saveImage,self,nil,nil);

frameCount++;
    if(frameCount>=100)
    {
     [pauseTimer invalidate];
     NSLog(@"Images are saved successfully");
    }
}

それは動作します.....ありがとう!!

于 2012-06-13T14:16:17.583 に答える