CNContactVCardSerialization.dataWithContacts 给出异常

hai*_*zal 3 vcf-vcard ios swift cncontact

我正在尝试使用方法将 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
    }
}
Run Code Online (Sandbox Code Playgroud)

hai*_*zal 7

我发现了我的错误。在获取联系人的键上,我丢失了CNContactVCardSerialization.descriptorForRequiredKeys(). 添加后,代码运行完美。