2016-07-25 9 views
1

Ich versuche, ein CNContact-Array mit der Methode CNContactVCardSerialization.dataWithContacts() in vCard zu konvertieren. Aber es gibt mir den folgenden Fehler.CNContactVCardSerialization.dataWithContacts gibt Ausnahme

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.

Ich stellte sicher, dass ich eine gültige Reihe von CNContacts bin vorbei, aber noch ist es, diese Ausnahme zu geben. Kann mir jemand sagen, was ich falsch gemacht habe?

Ich füge den Quellcode unten an.

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 
    } 
} 

Antwort

2

Ich habe meinen Fehler gefunden. Auf den Tasten zum Abrufen von Kontakt fehlte mir CNContactVCardSerialization.descriptorForRequiredKeys(). Nach dem Hinzufügen funktioniert der Code einwandfrei.

+0

#haider_kazal: Können Sie mir sagen, wie CNContactVCardSerialization.descriptorForRequiredKeys() verwenden oben –

+0

@AbhishekThapliThapliyal ... Wie ich bereits erwähnt, 'unifiedContactsMatchingPredicate()' Methode muss 'keysToFetch'; Schließen Sie 'CNContactVCardSerialization.descriptorForRequiredKeys()' in 'keysToFetch' ein, um die notwendigen Daten zum Erstellen von VCard zu erhalten –

Verwandte Themen