Cree un contacto mediante progtwigción mediante Swift

Estoy creando una aplicación donde se necesita para agregar un contacto a la libreta de direcciones de ese dispositivo. Cuando agrego el contacto al dispositivo usando solo el nombre y apellido, todo va bien. Sin embargo, cuando bash agregar el número de teléfono también, la aplicación se bloquea. ¿Alguien puede ver lo que estoy haciendo mal aquí?

¡Gracias por adelantado!

let firstName = "Firstname" let lastName = "Lastname" let telephoneNumber = "1234567890" let notes = "This is a note" let person: ABRecordRef = ABPersonCreate().takeRetainedValue() let couldSetFirstName = ABRecordSetValue(person, kABPersonFirstNameProperty, firstName as CFTypeRef, nil) let couldSetLastName = ABRecordSetValue(person, kABPersonLastNameProperty, lastName as CFTypeRef, nil) let couldSetPhoneNumber = ABRecordSetValue(person, kABPersonPhoneProperty, telephoneNumber as CFTypeRef, nil) let couldSetNotes = ABRecordSetValue(person, kABPersonNoteProperty, notes, nil) var error: Unmanaged<CFErrorRef>? = nil let couldAddPerson = ABAddressBookAddRecord(inAddressBook, person, &error) if couldAddPerson { println("Added person") } else{ println("Failed to add person") return nil } if ABAddressBookHasUnsavedChanges(inAddressBook){ var error: Unmanaged<CFErrorRef>? = nil let couldSaveAddressBook = ABAddressBookSave(inAddressBook, &error) if couldSaveAddressBook{ println("Saved address book") } else { println("Failed to save address book") } if couldSetFirstName && couldSetLastName { println("Succesfully set first and last name") } else{ println("Failed to set first and last name") } } return person 

Está pasando una cadena para establecer el valor de kABPersonPhoneProperty , lo cual no es correcto. El número de teléfono no es una propiedad de cadena; Es una propiedad de varios valores. Necesita configurarlo usando algo así como el código de aquí: ¿Cómo crear contactos en la libreta de direcciones en iPhone SDK? (que es Objective-C, pero debe ser sencillo de traducir).

 NSString *phone = @"0123456789"; // the phone number to add //Phone number is a list of phone number, so create a multivalue ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(phoneNumberMultiValue, phone, kABPersonPhoneMobileLabel, NULL); ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, &anError); // set the phone number property