我正在尝试在使用ARC时应用Unsynchronized的答案(Drawing waveform with AVAssetReader)。只需要进行一些修改,主要是发布语句。非常感谢您的回答!我正在使用针对iOS5设备的Xcode 4.2。
但是当我试图调用整个事情的时候,我在最后的一个声明中陷入困境。
此处显示的方法:
-(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;
现在试图将我的头围绕这几个小时,但无济于事。我的方法声明对于这种方法是错误的吗?谢谢!
答案 0 :(得分:2)
看起来initWithMPMediaItem
应该被声明为UIImage
的初始值设定项。因此,您应该在头文件中的UIImage
类别中声明它:
@interface UIImage (MPMedia)
- (id) initWithMPMediaItem:(MPMediaItem*)item
completionBlock:(void (^)(UIImage* delayedImagePreparation))completionBlock;
@end