avassetimagegeneratorcompleditionhandler-変数を設定または返す方法は?
-
26-10-2019 - |
質問
AvasseTimageGeneratorを使用して、以前に再生せずにMovieclipから画像を取得しています。今、私はハンドラーのループに変数をセットアップする方法に質問がありますか?出来ますか?私はこのエラーメッセージを受け取っていますが、それが何を意味するのか分かりません。 (Google>結果はありません)。
「変数は割り当てられません(__blockタイプ仕様がありません)」
だから私はここでプロを尋ねなければなりません。これがコードです。生成されたImagedataを保存または返却したいので、次のハンドラー内で「セットイメージ」メッセージを削除できます。
UIImage* thumbImg = [[UIImage alloc] init];
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error)
{
if (result != AVAssetImageGeneratorSucceeded)
{
NSLog(@"couldn't generate thumbnail, error:%@", error);
}
[button setImage:[UIImage imageWithCGImage:im] forState:UIControlStateNormal];
thumbImg = [[UIImage imageWithCGImage:im] retain];
[generator release];
};
それについて学ぶのは素晴らしいことです。御時間ありがとうございます。
解決
まったく1番目は、その宣言されたときに[Thumbimgを開始する必要もないようです - そのラインで作成されたuiimageオブジェクトはブロックで上書きされ、漏れます。 nil価値でそれを開始するだけです。
コードの実際の問題は、ブロックで変更する変数を__Block仕様で宣言する必要があることです(エラーメッセージが表示されるように)。したがって、あなたの1Sラインはそうあるべきです
__block UIImage* thumbImg = nil;
所属していません StackOverflow