Изменения социальных профилей после сохранения контакта в телефонной книге в swift4 - PullRequest
0 голосов
/ 30 октября 2018

Мне так интересно, имея эту проблему, я много пытался найти решение, но не смог.

Моя проблема - сохранение контактных данных и социальных профилей в телефонной книге с использованием кода ниже

func addProfileContact(completion: @escaping ()->Void) {


        let contact = CNMutableContact()
        addContact(Contact: populateProfileToContact(contact)) { (result) in
            switch result{
            case .Success(response: let bool):
                if bool{
                    completion()
                }
                break
            case .Error(error: let error):
                print(error.localizedDescription)
                break
            }
        }
    }


private func populateProfileToContact(_ contact: CNMutableContact) -> CNMutableContact {


    if contact.imageData == nil{
        contact.imageData = photoData

    }
    if let firstName = profile?.firstName {
        contact.givenName = firstName
    }
    if let lastName = profile?.lastName {
        contact.familyName = lastName
    }
    if let phone = profile?.phone {
        contact.phoneNumbers = [CNLabeledValue(label: CNLabelWork, value:CNPhoneNumber(stringValue: phone))]
    }
    if let email = profile?.email! as NSString? {
        contact.emailAddresses = [CNLabeledValue(label: CNLabelWork, value:email)]
    }
    contact.socialProfiles = []
    if let networks = profile?.networks {
        for network in networks {
            if let socialNetwork = NetworkUtility.networkWith(slug: network.slug), let url = socialNetwork.url(for: network) {

                //here i have used static values instead of original 
                contact.socialProfiles.append(CNLabeledValue(label: "DisplayName", value: CNSocialProfile(urlString: "UrlValue", username: "Username", userIdentifier: "Provider id", service: "displayName")))

            }

        }
    }
    return contact
}

Проблема заключается в том, что после выполнения этого я получаю результат ниже в телефонной книге. после возврата в приложение оно не соответствует существующему контакту: (

enter image description here

...