ARCの使用中に非同期の答え(Drawing waveform with AVAssetReader)を適用しようとしています。ほとんどの場合、リリース文が必要になります。素晴らしい答えに感謝します!私はiOS5デバイスをターゲットにしたXcode 4.2を使用しています。AVAssetReaderとARCで波形を描く
しかし、すべてを呼び出そうとしている最中に、私は最後に1つのステートメントにこだわっています。
ここに示した方法:initWithMPMediaItemへの呼び出しで
-(void) importMediaItem {
MPMediaItem* item = [self mediaItem];
waveFormImage = [[UIImage alloc ] initWithMPMediaItem:item completionBlock:^(UIImage* delayedImagePreparation){
[self displayWaveFormImage];
}];
if (waveFormImage) {
[self displayWaveFormImage];
}
}
私は次のエラーを取得する:
Automatic Reference Counting Issue. Receiver type 'UIImage' for instance message
does not declare a method with selector 'initWithMPMediaItem:completionBlock:'
私はinitWithMPMediaItemは、クラスのヘッダで宣言されたメソッドを持っているので、私は本当にドン」なぜこのエラーが出るのか理解できません。
- (id) initWithMPMediaItem:(MPMediaItem*)item
completionBlock:(void (^)(UIImage* delayedImagePreparation))completionBlock;
ここ数時間、私の頭の中を包み込みたいが、役に立たない。このメソッドのメソッドの宣言が間違っていますか?ありがとう!
主な問題は、あなたはUIImageにinitWithMPMediaItemを呼び出しているということです。あなたのクラスのメソッドとして宣言されています(宣言されているヘッダーを表示するまでは実際にはわかりません)ので、自分自身(UIImageではないと仮定しています)に呼び出されることを期待しています。このメソッドをどのように動作させるかは、UIImageカテゴリにあるかどうかを判断する必要があります。 – sosborn