Comment sortinger les contacts à l'aide de Contacts avec Swift

J'ai lu la documentation officielle d'Apple sur le sorting des contacts, même si je ne suis pas sûr de savoir comment l'implémenter. Donc, voici la requête d'extraction:

let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch) 

et mon ordre de sorting préféré:

 let sortOrder = CNContactSortOrder.UserDefault 

et voici comment je récupère habituellement des contacts:

  do { try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in self.contacts.append(contact) }) } catch let error as NSError { print(error.localizedDescription) } 

Maintenant, que dois-je faire avec sortOrder ? Où et devrais-je inclure dans tout mon process de récupération?

Mis à jour pour Swift 4.0

 let fetchRequest = CNContactFetchRequest(keysToFetch: [CNContactGivenNameKey as CNKeyDescriptor, CNContactFamilyNameKey as CNKeyDescriptor, CNContactMiddleNameKey as CNKeyDescriptor, CNContactEmailAddressesKey as CNKeyDescriptor,CNContactPhoneNumbersKey as CNKeyDescriptor]) fetchRequest.sortOrder = CNContactSortOrder.userDefault let store = CNContactStore() do { try store.enumerateContacts(with: fetchRequest, usingBlock: { (contact, stop) -> Void in // print(contact.phoneNumbers.first?.value ?? "not found") }) } catch let error as NSError { print(error.localizedDescription) } 

Ancienne version écrit comme ça

  fetchRequest.sortOrder = CNContactSortOrder.UserDefault 

après que l'object fetchRequest a été créé pour que votre sortie finale ressemble à

 let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch) fetchRequest.sortOrder = CNContactSortOrder.UserDefault do { try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in self.contacts.append(contact) }) } catch let error as NSError { print(error.localizedDescription) }