Swift iOS9 New Contacts Framework: ¿Cómo recuperar solo CNContact que tiene una dirección de correo electrónico válida?

En el último marco de contactos para iOS9, ¿cómo recuperar solo CNContact que tiene una dirección de correo electrónico válida?

Código actual:

func getContacts() -> [CNContact] { let contactStore = CNContactStore() let pnetworkingicate: NSPnetworkingicate = NSPnetworkingicate(format: "") let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey] do { return try contactStore.unifiedContactsMatchingPnetworkingicate(pnetworkingicate, keysToFetch: keysToFetch) } catch { return [] } } 

Por ahora (iOS 9.0) parece que no hay pnetworkingicados ( ver Pnetworkingicados CNContact ) disponibles para filtrar contactos por dirección de correo electrónico.

No puede escribir un pnetworkingicado personalizado para filtrar contactos, ya que el documento dice: "Tenga en count que el marco de contactos no admite los pnetworkingicados generics y compuestos"

Pero, por supuesto, puede hacerlo "manualmente", le muestro un ejemplo usando enumeración rápida:

 let contactStore = CNContactStore() fetchRequest.unifyResults = true //True should be the default option do { try contactStore.enumerateContactsWithFetchRequest(CNContactFetchRequest(keysToFetch: [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey])) { (contact, cursor) -> Void in if (!contact.emailAddresses.isEmpty){ //Add to your array } } } catch{ print("Handle the error please") }