32

这是什么意思,我有什么选择?

ARC 不允许将 Objective-C 指针隐式转换为“void *”

我正在将一个 Xcode3 项目移植到 iOS5,它像这样使用 AudioSessionInitialize

AudioSessionInitialize(NULL, NULL, NULL, self);

这里self是一个 ViewController。

4

2 回答 2

50

您应该为此使用 __bridge cast。

AudioSessionInitialize(NULL, NULL, NULL, (__bridge void *)self);
于 2011-08-22T23:11:20.837 回答
30

你不能再做隐式转换void*了,AudioSessionInitialize(NULL, NULL, NULL, objc_unretainedPointer(self));应该做的伎俩。

编辑:历史点,上面的答案是在__bridge演员表最终确定之前。在现代代码中,正确的答案是@KazukiSakamoto 提供的,AudioSessionInitialize(NULL, NULL, NULL, (__bridge void*)self);

于 2011-07-29T02:49:34.247 回答