Swift (iOS 8 SDK) Преобразование неуправляемого <ABMultiValueRef> в ABMultiValueRef
Мне нужно преобразовать возвращаемое значение этой функции из структуры AddressBook:
ABRecordCopyValue(nil, kABPersonPhoneProperty)
к значению типа ABMultiValueRef
Эта функция в настоящее время помечена как это:
func ABRecordCopyValue(record: ABRecordRef!, property: ABPropertyID) -> Unmanaged<AnyObject>!
Так что я могу преобразовать его в Unmanaged следующим образом:
ABRecordCopyValue(person, kABPersonPhoneProperty) as Unmanaged<ABMultiValueRef>
Но тогда как я могу получить его как ABMultiValueRef, чтобы я мог передать его этой функции?
func ABMultiValueGetIndexForIdentifier(multiValue: ABMultiValueRef!, identifier: ABMultiValueIdentifier) -> CFIndex
Я сделал это:
let managedPhones = Unmanaged.fromOpaque(phones.toOpaque()).takeUnretainedValue() as ABMultiValueRef
И я продолжаю получать эту ошибку компилятора:
Bitcast requires both operands to be pointer or neither
%89 = bitcast %objc_object* %88 to %PSs9AnyObject_, !dbg !325
LLVM ERROR: Broken function found, compilation aborted!
Command /Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 1