如何将 vCard 转换为 CNContact
How to convert a vCard into a CNContact
我使用了这段代码:
var vcard = NSData()
let usersContact = CNMutableContact()
do {
try vcard = CNContactVCardSerialization.dataWithContacts([usersContact])
} catch {
print("Error \(error)")
}
将 CNMutableContact 转换为 vCard,这似乎可以正常工作。
当我尝试将 vCard 转换回来时使用这个(在另一个 viewController 使用 segue 发送我非常有信心正在工作的数据):
var vCardSFR = NSData()
var usersContact = CNContact()
....more code....
do {
try usersContact = CNContactVCardSerialization.contactsWithData(vCardSFR)
} catch {
print("Error \(error)")
}
但我收到一条错误消息,指出它无法将类型 [AnyObject] 的值分配给类型 CNContact。
然后我尝试以这种方式初始化 CNContact:
var usersContact = [CNContact()]
但随后我收到一条错误消息,指出无法将类型 [AnyObject] 的值分配给类型 [CNContact]。
我认为对此有一个非常简单的解决方案,但我不知道它可能是什么。
我一直在使用它来获取我的电子名片代码:
https://developer.apple.com/library/prerelease/mac/documentation/Contacts/Reference/CNContactVCardSerialization_Class/index.html#//apple_ref/occ/clm/CNContactVCardSerialization/contactsWithData:error:
非常感谢任何帮助!
我用了
var usersContact = []
do {
try usersContact = CNContactVCardSerialization.contactsWithData(vCardSFR)
} catch {
print("Error \(error)")
}
然后
var contact = usersContact[0] as! CNContact
我使用了这段代码:
var vcard = NSData()
let usersContact = CNMutableContact()
do {
try vcard = CNContactVCardSerialization.dataWithContacts([usersContact])
} catch {
print("Error \(error)")
}
将 CNMutableContact 转换为 vCard,这似乎可以正常工作。 当我尝试将 vCard 转换回来时使用这个(在另一个 viewController 使用 segue 发送我非常有信心正在工作的数据):
var vCardSFR = NSData()
var usersContact = CNContact()
....more code....
do {
try usersContact = CNContactVCardSerialization.contactsWithData(vCardSFR)
} catch {
print("Error \(error)")
}
但我收到一条错误消息,指出它无法将类型 [AnyObject] 的值分配给类型 CNContact。 然后我尝试以这种方式初始化 CNContact:
var usersContact = [CNContact()]
但随后我收到一条错误消息,指出无法将类型 [AnyObject] 的值分配给类型 [CNContact]。 我认为对此有一个非常简单的解决方案,但我不知道它可能是什么。 我一直在使用它来获取我的电子名片代码: https://developer.apple.com/library/prerelease/mac/documentation/Contacts/Reference/CNContactVCardSerialization_Class/index.html#//apple_ref/occ/clm/CNContactVCardSerialization/contactsWithData:error:
非常感谢任何帮助!
我用了
var usersContact = []
do {
try usersContact = CNContactVCardSerialization.contactsWithData(vCardSFR)
} catch {
print("Error \(error)")
}
然后
var contact = usersContact[0] as! CNContact