当我从AudioPlaybackComplete调用任何方法时,我正在使用未声明的标识符自我错误。你们中的任何人都知道为什么或如何修复?
static void AudioPlaybackComplete(SystemSoundID ssID, void *data)
{
[self doSomething]; /// error use of undeclared identifier self
}
答案 0 :(得分:2)
您需要使用数据指针* data传递对象(您想要通过self引用的对象)。直接指向对象(然后将其强制转换回适当的类/类型的对象以供使用),或者将对象作为* data指向的C结构的元素传递。
Objective C方法调用也是这样做的,但是编译器会自动传递并设置self,而不是通过编码来显式隐藏。由于您使用的是C函数,因此您必须自己编写代码。
答案 1 :(得分:1)
你在静态函数中调用self - self指的是类的特定实例。