这意味着什么,我有什么选择?
implicit conversion of an Objective-C pointer to 'void *' is disallowed with ARC
我正在将一个Xcode3项目移植到iOS5,它使用AudioSessionInitialize这样
AudioSessionInitialize(NULL, NULL, NULL, self);
其中self
这里是ViewController。
答案 0 :(得分:50)
你应该使用__bridge演员。
AudioSessionInitialize(NULL, NULL, NULL, (__bridge void *)self);
答案 1 :(得分:30)
你不能再对void*
进行隐式强制转换,AudioSessionInitialize(NULL, NULL, NULL, objc_unretainedPointer(self));
应该这样做。
编辑:
历史一点,上面的答案是在__bridge
演员表最终确定之前。在现代代码中,正确的答案是@KazukiSakamoto提供的AudioSessionInitialize(NULL, NULL, NULL, (__bridge void*)self);