Ho bisogno di convertire il valore di ritorno di questa funzione dal quadro AddressBook:Swift (iOS 8 SDK) Convertire gestito <ABMultiValueRef> per ABMultiValueRef
ABRecordCopyValue(nil, kABPersonPhoneProperty)
ad un valore di tipo ABMultiValueRef
Questa funzione è attualmente contrassegnato come questo:
func ABRecordCopyValue(record: ABRecordRef!, property: ABPropertyID) -> Unmanaged<AnyObject>!
così posso convertirlo in non gestito in questo modo:
ABRecordCopyValue(person, kABPersonPhoneProperty) as Unmanaged<ABMultiValueRef>
Ma come posso ottenerlo come ABMultiValueRef in modo che possa passarlo a questa funzione?
func ABMultiValueGetIndexForIdentifier(multiValue: ABMultiValueRef!, identifier: ABMultiValueIdentifier) -> CFIndex
ho fatto questo:
let managedPhones = Unmanaged.fromOpaque(phones.toOpaque()).takeUnretainedValue() as ABMultiValueRef
E continuo a ricevere questo errore di compilazione:
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
Ho lo stesso errore. Sono bloccato con il recupero dei record del libro ordinati :( – Anton
Ho sentito che questo è perché Apple non ha ancora (come iOS 8 SDK Beta 4) abilitato CF_IMPLICIT_BRIDGING_ENABLED sul framework AddressBook. –
Ok, ora capisco :( – Anton