Objective-C 无法初始化 .mm 扩展名中 CFStringRef 类型的变量

Objective-C Cannot Initialize a Variable of Type CFStringRef in .mm extension

我正在从我的 class 中的 iPhone 联系人导入联系人,然后我将我的文件扩展为 c++(因为我需要使用一个库,要求它是 . mm) 然后发生错误。

代码:CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);

错误:cannot initialize a variable of type 'CFStringRef' (aka'const__CFString*') with an rvalue of type CFTypeRef (aka 'const void *')

我迷路了。

我随机在 = 符号后面加上 (CFStringRef) 并修复了错误。似乎 c++ 编译器不希望自动转换。

这成功了:

CFStringRef phoneNumberRef = (CFStringRef) ABMultiValueCopyValueAtIndex(phones, j);