ios - 如何将 vCard 转换为 CNContact

标签 ios swift vcf-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]。 我认为对此有一个非常简单的解决方案,但我不知道它可能是什么。 我一直在使用它来获取我的电子名片代码: 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

关于ios - 如何将 vCard 转换为 CNContact,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104728/

相关文章:

ios - 为基于 iOS 的项目实现 MVC vs MVVM vs VIPER 的真实场景

iOS - 在后台运行服务

java - asmack - 无法读取 VCard

android - 直接用联系人应用程序打开 .vcf vCard 文件

ios - 在 Intellij IDEA 上为 iOS 专门打包 flex 应用程序

android - 我如何使用 Android Studio 解决 Flutter iOS 错误?

ios - 我怎么知道 generateCGImagesAsynchronously 何时完全完成?

swift - 我不了解 Swift Unicode 标量基础知识。我缺少什么

swift - Swift 2 和 Swift 3 中的核心数据 momd 扩展

iphone - 导入 vcf vcard 文件时的 EXC_BAD_ACESS