繁体   English   中英

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

[英]implicit conversion of an Objective-C pointer to 'void *' is disallowed with ARC

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

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM