2016-07-25 72 views
1

我想使用方法CNContactVCardSerialization.dataWithContacts()將CNContact數組轉換爲vCard。但它給了我以下錯誤。CNContactVCardSerialization.dataWithContacts給出異常

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:你能告訴我怎麼用 CNContactVCardSerialization.descriptorForRequiredKeys() 以上 –

+0

@AbhishekThapliThapliyal ......正如我所說,'unifiedContactsMatchingPredicate()'方法需要'keysToFetch';在'keysToFetch'中包含'CNContactVCardSerialization.descriptorForRequiredKeys()'以獲得必要的數據來創建VCard –