如何将此功能从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'
请帮帮我
答案 0 :(得分:0)
从iOS9开始,不推荐使用AddressBook框架,Apple也随时使用 会说:&#34;地址簿实际上是从iOS 10.x&#34;中删除的。你更好 马上为Contacts框架做好准备。
您正在使用如此冗余的代码,即使在Swift2中也不需要某些部分。
要从T
检索Unmanaged<T>?
个对象,您只需立即致电takeRetainedValue()
或takeUnretainedValue()
。
let phones: ABMultiValue? = unmanagedPhones?.takeRetainedValue()
takeRetainedValue()
作为Copy
- 统治函数的结果。ABMultiValue
是Swift3中CFTypeRef的类型,因此您无需转换结果。Unmanaged<T>?
可能是零。