2016-07-25 1 views
1

私はCNContact配列をメソッドCNContactVCardSerialization.dataWithContacts()を使用してvCardに変換しようとしています。しかし、それは私に次のエラーを与えています。CNContactVCardSerialization.dataWithContactException例外

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.

私はCNContactsの有効な配列を渡すんだけど、まだそれがこの例外を与えていることを確認しました。私が間違ったことを誰かが私に案内できますか?

私は以下のソースコードを添付しています。

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

答えて

2

私は間違いを発見しました。連絡先を取得するためのキーで、私はCNContactVCardSerialization.descriptorForRequiredKeys()が見つかりませんでした。それを追加した後、コードは完璧に動作しています。

+0

#haider_kazal:上記 –

+0

@AbhishekThapliThapliyalであなたはどのように CNContactVCardSerialization.descriptorForRequiredKeysを使用する方法を教えてもらえます() ...私が述べたように、 'unifiedContactsMatchingPredicateは()'メソッドはkeysToFetch' '必要があります。 VCardsを作成するために必要なデータを取得するために 'keysToFetch'に' CNContactVCardSerialization.descriptorForRequiredKeys() 'を含みます –