2016-07-25 1 views
1

Je suis en train de convertir un tableau CNContact en vCard en utilisant la méthode CNContactVCardSerialization.dataWithContacts(). Mais il me donne l'erreur suivante.CNContactVCardSerialization.dataWithContacts donnant l'exception

2016-07-25 14:05:00.115 AddressBook-ios9[902:28918] Exception writing contacts to vCard (data): A property was not requested when contact was fetched.

Je me suis assuré que je passe un tableau valide de CNContacts, mais il donne cette exception. Quelqu'un peut-il me guider vers ce que j'ai mal fait?

Je joins le code source ci-dessous.

func getVcardFromSearchingName(name: String) -> NSData? { 
    do {    
     if let contacts = searchMultiContacts(name) { 
      print(contacts) 
      let vCard = try CNContactVCardSerialization.dataWithContacts(contacts) 
      return vCard 
     } else { 
      return nil 
     } 
    } catch { 
     return nil 
    } 
} 

Répondre

2

J'ai découvert mon erreur. Sur les touches pour aller chercher, il me manquait CNContactVCardSerialization.descriptorForRequiredKeys(). Après l'avoir ajouté, le code fonctionne parfaitement.

+0

#haider_kazal: Pouvez-vous me dire comment utiliser CNContactVCardSerialization.descriptorForRequiredKeys() au-dessus –

+0

@AbhishekThapliThapliyal ... Comme je l'ai mentionné, 'unifiedContactsMatchingPredicate()' 'méthode a besoin keysToFetch'; include 'CNContactVCardSerialization.descriptorForRequiredKeys()' dans 'keysToFetch' pour obtenir les données nécessaires à la création de VCard –