1

我使用了这段代码:

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

任何帮助将不胜感激!

4

1 回答 1

3

我用了

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


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

进而

var contact = usersContact[0] as! CNContact
于 2016-04-10T05:19:23.010 回答