这是什么意思,我有什么选择?
ARC 不允许将 Objective-C 指针隐式转换为“void *”
我正在将一个 Xcode3 项目移植到 iOS5,它像这样使用 AudioSessionInitialize
AudioSessionInitialize(NULL, NULL, NULL, self);
这里self
是一个 ViewController。
这是什么意思,我有什么选择?
ARC 不允许将 Objective-C 指针隐式转换为“void *”
我正在将一个 Xcode3 项目移植到 iOS5,它像这样使用 AudioSessionInitialize
AudioSessionInitialize(NULL, NULL, NULL, self);
这里self
是一个 ViewController。
您应该为此使用 __bridge cast。
AudioSessionInitialize(NULL, NULL, NULL, (__bridge void *)self);
你不能再做隐式转换void*
了,AudioSessionInitialize(NULL, NULL, NULL, objc_unretainedPointer(self));
应该做的伎俩。
编辑:历史点,上面的答案是在__bridge
演员表最终确定之前。在现代代码中,正确的答案是@KazukiSakamoto 提供的,AudioSessionInitialize(NULL, NULL, NULL, (__bridge void*)self);