Cargando contactos de iPhone se bloquea en Swift

Estoy intentando cargar los contactos para mi aplicación. Está funcionando bien en Simulator. Pero estrellarse en el iPhone. El código que estoy usando:

func getContactNames() { let allContacts = ABAddressBookCopyArrayOfAllPeople(addressBookRef).takeRetainedValue() as Array for record in allContacts { let currentContact: ABRecordRef = record let currentContactName = ABRecordCopyCompositeName(currentContact).takeRetainedValue() as String if(currentContactName != "") { println("found \(currentContactName).") } } } 

Esta function está siendo correcta y después de get pocos contactos, la aplicación se bloquea con el logging:

 fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) 

Creo que se debe a Name in contacts, si trato de get el número de teléfono, está funcionando bien. Puedo ver todos los numbers de teléfono, pero en el caso de Name, puedo ver alnetworkingedor de 350 contactos y luego la aplicación se bloquea.

¿Alguna idea de cómo puedo resolver esto?

Para tener en count un valor nulo potencial (que puede suceder cuando falta un nombre en el logging de un contacto), cambie

 let currentContactName = ABRecordCopyCompositeName(currentContact).takeRetainedValue() as String 

a

 let currentContactName = ABRecordCopyCompositeName(currentContact)?.takeRetainedValue() as? String 

Utiliza el código anterior para que funcione

 func readAllPeopleInAddressBook(addressBook: ABAddressBookRef){ /* Get all the people in the address book */ let allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook).takeRetainedValue() as NSArray for person: ABRecordRef in allPeople{ if(ABRecordCopyValue(person, kABPersonFirstNameProperty) != nil){ let firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty).takeRetainedValue() as? String println("First name = \(firstName)") } if (ABRecordCopyValue(person, kABPersonLastNameProperty) != nil){ let lastName = ABRecordCopyValue(person, kABPersonLastNameProperty).takeRetainedValue()as? String println("Last name = \(lastName)") } } }