ios objC回叫呼叫方法

时间:2013-01-03 11:42:38

标签: objective-c c callback

我正在使用系统声音服务,播放声音我有麦克风录音机, 工作正常,并在声音停止时使用回调,

//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,

以及如何调用该方法,

谢谢!

1 个答案:

答案 0 :(得分:1)

self是你的对象..在回调函数中知道它,它不是你的类的一部分你把它作为一个(void *)传递给context参数形式的函数。

现在回到你的对象并调用你从上下文var

获取指针的方法 在您的情况下


上下文命名为我自己: [(id)myself stopSoundByDemand];


回调通常是一个不属于任何实例的函数,因此不了解自我。