Xcode 8:'objc_unretainedPointer'不可用使用__bridge强制转换

时间:2016-06-14 08:45:03

标签: ios xcode8

刚刚将我的项目更新为Xcode 8,我在我的应用程序包含的多个外部框架中发现了这个错误。是否有解决方法,可能涉及设置,以避免此编译错误?

这是一个错误示例:(我无法修改,因为它是导入的框架)

const void * ivarPtr = objc_unretainedPointer(self) + ivar_getOffset(ivar);
[decoder decodeValueOfObjCType:[ivarInfo[@"encoding"] UTF8String] at:(void *)ivarPtr];

2 个答案:

答案 0 :(得分:18)

对于Xcode 8,它应该是:

const void * ivarPtr = (__bridge void *)(self) + ivar_getOffset(ivar);

答案 1 :(得分:2)

您可以简单地将objc_unretainedPointer(self)替换为(__bridge void *)(自我)