Рисование формы волны с помощью AVAssetReader и ARC - PullRequest
2 голосов
/ 01 марта 2012

Я пытаюсь применить ответ Unsynchronized ( Рисование формы волны с AVAssetReader ) при использовании ARC.Требовалось всего несколько модификаций, в основном заявления о выпуске.Большое спасибо за отличный ответ!Я использую Xcode 4.2 для устройства iOS 5.

Но в конце я застрял в одном утверждении, пытаясь вызвать все это.

Метод, показанный здесь:

-(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;

Я пытался обернуть это вокруг себя уже несколько часов, но безрезультатно.Является ли объявление моего метода неправильным для этого типа метода?Спасибо!

1 Ответ

2 голосов
/ 01 марта 2012

Похоже, initWithMPMediaItem должен быть объявлен как инициализатор для UIImage. Поэтому вы должны объявить его в категории UIImage в вашем заголовочном файле:

@interface UIImage (MPMedia)

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

@end
...