Итак, я только что обновился до Xcode 8 и преобразовал мой код Swift 2.3 в Swift 3, и у меня есть ошибка в этой строке кода, которая не была в Swift 2.3:ABAddressBook fromOpaque (_ :) в Swift 3
func populateFrom(_ addressBook:ABAddressBook)
{
let allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook).takeRetainedValue()
let nPeople = ABAddressBookGetPersonCount(addressBook)
for index in 0..<nPeople
{
let person:ABRecord = Unmanaged<ABRecord>.fromOpaque(OpaquePointer(CFArrayGetValueAtIndex(allPeople, index))).takeUnretainedValue()
}
}
Теперь проблема в линии let person:ABRecord = Unmanaged<ABRecord>.fromOpaque(OpaquePointer(CFArrayGetValueAtIndex(allPeople, index))).takeUnretainedValue()
Xcode рассказывает мне, что 'fromOpaque' is unavailable: use 'fromOpaque(_:UnsafeRawPointer)' instead
. Но я не могу найти, что функция Xcode говорит мне использовать, я могу просто найти fromOpaque(value: UnsafeRawPointer)
, который я использую сейчас.
Как это сделать?
Несвязанный, но если вы программируете в Swift 3, вы можете просто использовать структуру контактов, что намного проще, чем старый ABAddressBook ... – Rob