我正在使用系统声音服务,要播放声音,我有带麦克风的录音机, 工作正常,并在声音停止时使用回调,
//callback pa saber termina
AudioServicesAddSystemSoundCompletion (soundID,NULL,NULL,completionCallback,(void*) self); //q es un call back?, q es (void*)self??
//Use audio services to play the sound
AudioServicesPlaySystemSound(soundID);
所以当声音停止时它会调用:
//usando Callback!
static void completionCallback (SystemSoundID mySSID, void* myself) {
NSLog(@"termino");
}
但是我如何调用我的方法:
- (void)stopSoundByDemand{
self.playingMode = NO;
[self.playButton setTitle:@"Play" forState:UIControlStateNormal];
[self stopSound];
}
那么,如果我理解正确的话,“回调”仅适用于 C?
如何从这个 C“回调”调用 objC 方法?
我读过它,但还没弄清楚,
请我澄清一下什么是回调,如果仅适用于 C,
以及如何调用该方法,
谢谢!
最佳答案
self 是您的对象.. 要在回调函数中了解它,它不是您的类的一部分,您可以将它作为 (void*) 以上下文参数的形式传递给函数。
现在返回您的对象并调用从上下文变量获取该指针的方法
根据您的情况
上下文被命名为我自己:
[(id)myself stopSoundByDemand];
回调通常是一个不属于任何实例的函数,因此不知道 self。
关于objective-c - ios objC回调调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138255/