我收到此代码的错误 -
警告:类'BeatMaker'未实现'AVAudioPlayerDelegate'协议
-(IBAction)playBeat3 {
NSString *path = [[NSBundle mainBundle] pathForResource:@"beat3" ofType:@"mp3"];
AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
}
任何人都可以帮我吗?
答案 0 :(得分:7)
您告诉AVAudioPlayer实例,您的BeatMaker类使用以下行实现AVAudioPlayerDelegate协议:
theAudio.delegate = self;
但显然你的BeatMaker类没有告诉编译器它实际上是一个AVAudioPlayerDelegate。您可以在头文件中执行此操作:
@interface BeatMaker : NSObject <AVAudioPlayerDelegate> { ... }
然后,您必须确保已在BeatMaker类中实现了AVAudioPlayerDelegate协议的所有必需功能。
在这种情况下,协议没有必需的功能,所以如果您只是复制代码并且实际上并不想从音频接收消息,则可以删除将self分配给音频的delegate属性的行。