ios - __bridge_transfer 和 ABRecordCopyValue : and ARC

标签 ios

我正在访问地址簿并有这一行并且正在使用 ARC 进行编译:

 ABMultiValueRef phoneNums = ABRecordCopyValue(person, kABPersonPhoneProperty);

这一行是否需要重写为:

ABMultiValueRef phoneNums = (__bridge_transfer ) ABRecordCopyValue(person, kABPersonPhoneProperty);

如果是,那么编译器不应该生成警告吗? 如果不是,那么我可能无法完全理解将 ARC 与核心框架结合使用。

最佳答案

不,在这种情况下你不应该桥接。 ABMultiValueRef 是一个 CFTypeRefABRecordCopyValue 返回一个 CFTypeRef。不需要桥梁。

当您在 idCFTypeRef(void* 的同义词)之间进行转换时,需要进行桥接转换。

关于ios - __bridge_transfer 和 ABRecordCopyValue : and ARC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9217548/

相关文章:

ios - Storyboard iOS 4.2 中的递归 TableView

android - 如何知道 iOS 设备在某个附近?

android - Smule 唱歌音频效果如何工作?

ios - 在许多 Mac 上运行 UIAutomation 脚本?

ios - 枚举值 'NSFetchedResultsChangeMove' 和 NSFetchedResultsChangeUpdate' 未在开关中处理

objective-c - cocos2d 中的 viewWillAppear 等效项

ios - 滚动开始时向上滑动 UITableView

iphone - 设备锁定时,NSTimer过期

ios - 在 XCTests 中使用 [NSOperationQueue mainQueue]

android - PhoneGap 体验