我正在将我的一个项目转换为 ARC,但在以下行中出现错误:
_font = CTFontCreateWithName((CFStringRef)_fontName, fontSize, NULL);
其中 _fontName 是一个 NSString。错误是:
将 Objective-C 指针类型“NSString *”转换为 C 指针类型“CFStringRef”(又名“const struct __CFString *”)需要桥接转换
我有两个关于如何从 xCode 修复它的选项:
使用 __bridge 直接转换(所有权不变)
或者
使用 CFBridgingRetain 调用使 ARC 对象可用作 +1 'CFStringRef'(又名 'const struct __CFString *')
哪个是更好的选择?我正在考虑首选,因为我猜 CoreText 方法会保留它。但话又说回来,只是想确保我不会对 ARC 打折。