DTCoretext 报'objc_unretainedPointer' is unavailable use a __bridge cas

678 阅读1分钟

报错内容

#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_7
    void *impBlockForIMP = (void *)objc_unretainedPointer(block);
#else
    id impBlockForIMP = (__bridge id)objc_unretainedPointer(block);
#endif

根据报错提示查看api说明

OBJC_EXPORT id objc_unretainedObject(objc_objectptr_t obj)
    OBJC_UNAVAILABLE("use a (__bridge id) cast instead");
OBJC_EXPORT objc_objectptr_t objc_unretainedPointer(id obj)
    OBJC_UNAVAILABLE("use a __bridge cast instead");

修改以后

#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_7
    void *impBlockForIMP = (void *)objc_unretainedPointer(block);
#else
    id impBlockForIMP = (__bridge id)(__bridge void*)(block);
#endif