我试图在使用ARC时应用Unsynchronized的回答(Drawing waveform with AVAssetReader)。只需要进行一些修改,主要是发布声明。非常感谢您的好评!我正在使用针对iOS5设备的Xcode 4.2。使用AVAssetReader和ARC绘制波形
但是,我试图调用整个事情时,最后在一个语句中卡住了。这里显示
方法:
-(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;
一直试图把我的头围绕这几个小时,但无济于事。对于这种类型的方法,我的方法声明是错误的吗?谢谢!
的主要问题是,你在一个UIImage调用initWithMPMediaItem。它被声明为你的类中的一个方法(我认为,直到你向我们展示它被声明的头部后才能真正知道),因此它期望在self上被调用(我认为它不是UIImage)。你需要决定你想要这个方法如何行动 - 它应该在UIImage类别中吗? – sosborn 2012-03-01 01:25:41