【发布时间】:2017-11-02 13:49:05
【问题描述】:
我正在尝试检索所有联系人并将其保存为 VCard 形式(swift 4、XCode 9.0)。但是 CNContactVCardSerialization.data(with:) 总是返回 nil。这是我的代码:
var contacts = [CNContact]()
let request = CNContactFetchRequest(keysToFetch:[CNContact.descriptorForAllComparatorKeys()])
do {
try contactsStore.enumerateContacts(with: request, usingBlock:
{ (contact:CNContact, result:UnsafeMutablePointer<ObjCBool>) in
self.contacts.append(contact)
})
}
catch {
}
// at this point all contacts are in the "contacts" array.
var data = Data()
do {
try data = CNContactVCardSerialization.data(with: contacts)
}
catch {
print("some error in contacts:" + String(describing: error));
}
print(">>>data:" + String(data.count))
输出:
2017-11-02 XXX [5224:449081]
Exception writing contacts to vCard (data): A property was not
requested when contact was fetched.
2017-11-02 XXX [5224:449362] XPC
connection interrupted
some error in contacts:nilError
>>>data:0
我把下面的问题加红了,但它没有帮助。 How to use method dataWithContacts in CNContactVCardSerialization?
我在 info.plist 中添加了“隐私 - 联系人使用说明”
【问题讨论】:
-
嗨@Alex你得到答案了吗?