如何将vCard转换为CNContact

时间:2015-12-05 12:08:53

标签: ios swift vcard 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]。 我认为这是一个非常简单的解决方案,但我不知道它可能是什么。 我一直用它来获取vCards的代码: https://developer.apple.com/library/prerelease/mac/documentation/Contacts/Reference/CNContactVCardSerialization_Class/index.html#//apple_ref/occ/clm/CNContactVCardSerialization/contactsWithData:error

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我用过

var usersContact = []
do {
    try usersContact = CNContactVCardSerialization.contactsWithData(vCardSFR)


} catch {
    print("Error \(error)")
}

然后

var contact = usersContact[0] as! CNContact