2

ARCを使用しているときに、 Unsynchronizedの回答(AVAssetReaderを使用して波形を描画する)を適用しようとしています。必要な変更はわずかで、ほとんどがリリースステートメントでした。素晴らしい答えをありがとう!iOS5デバイスをターゲットにしたXcode4.2を使用しています。

しかし、すべてを呼び出そうとしている間、私は最後に1つのステートメントで立ち往生しています。

ここに示す方法:

-(void) importMediaItem {

    MPMediaItem* item = [self mediaItem];

    waveFormImage = [[UIImage alloc ] initWithMPMediaItem:item completionBlock:^(UIImage* delayedImagePreparation){

        [self displayWaveFormImage];
    }];

    if (waveFormImage) {
       [self displayWaveFormImage];
    }
}

initWithMPMediaItemを呼び出すと、次のエラーが発生します。

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;

数時間これに頭を包み込もうとしていたが、役に立たなかった。このタイプのメソッドのメソッド宣言は間違っていますか?ありがとう!

4

1 に答える 1

2

initWithMPMediaItemの初期化子として宣言する必要があるようですUIImageUIImageしたがって、ヘッダーファイルのカテゴリ内で宣言する必要があります。

@interface UIImage (MPMedia)

- (id) initWithMPMediaItem:(MPMediaItem*)item
   completionBlock:(void (^)(UIImage* delayedImagePreparation))completionBlock;

@end
于 2012-03-01T00:59:37.610 に答える