Как преобразовать vCard в CNContact

Я использовал этот фрагмент кода:

 var vcard = NSData()
 let usersContact = CNMutableContact()
 do {
     try vcard = CNContactVCardSerialization.dataWithContacts([usersContact])
 } catch {
     print("Error \(error)")
 }

чтобы преобразовать CNMutableContact в визитную карточку, которая, кажется, работает. Однако, когда я пытаюсь преобразовать vCard обратно, используя это (в другом viewController, используя переход для отправки данных, которые, я уверен, работают):

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:

Любая помощь будет очень высоко ценится!


person CoolPenguin    schedule 05.12.2015    source источник


Ответы (1)


я использовал

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


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

а потом

var contact = usersContact[0] as! CNContact
person CoolPenguin    schedule 10.04.2016