gpt4 book ai didi

swift - 如何将 Unmanaged 转换为 Swift 3

转载 作者:行者123 更新时间:2023-11-30 13:13:16 25 4
gpt4 key购买 nike

如何从 Swift 2.3 覆盖此函数到 Swift 3

 let unmanagedPhones = ABRecordCopyValue(person, kABPersonPhoneProperty)

let phones: ABMultiValue = Unmanaged.fromOpaque(unmanagedPhones.toOpaque()).takeUnretainedValue() as NSObject as ABMultiValue

编译器说:'Unmanaged<CFTypeRef>?' has no member 'toOpaque'

请帮助我

最佳答案

AddressBook framework is deprecated as of iOS9, and at any time Apple would say: "AddressBook is actually removed from iOS 10.x". You better get ready for Contacts framework soon.

您使用的代码过于冗余,以至于某些部分即使在 Swift2 中也不需要。

检索T来自 Unmanaged<T>? 的对象,您只需调用 takeRetainedValue()takeUnretainedValue()立即。

let phones: ABMultiValue? = unmanagedPhones?.takeRetainedValue()
  • 您应该使用takeRetainedValue()对于 Copy 的结果- 规则函数。
  • ABMultiValue是 Swift3 中 CFTypeRef 的类型别名,因此您无需转换结果。
  • 关心零安全编码,如 Unmanaged<T>?可能为零。

关于swift - 如何将 Unmanaged<CFTypeRef> 转换为 Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38510196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com