Сохранение адреса контакта в унифицированном контакте приводит к (ошибка 500 CNErrorDomain)
В моем приложении есть странная ошибка, для которой я не могу найти обходные пути / исправления. По какой-то причине я могу сохранить адрес для контакта, который не объединен с социальным профилем (Facebook, Twitter и т. Д.). Однако, когда я пытаюсь добавить адрес для своего контакта, который объединен с Facebook или Twitter, я получаю странную ошибку сохранения:
The operation couldn’t be completed. (CNErrorDomain error 500.)
Вот часть кода, который я использую:
if mutableContact.isKeyAvailable(CNContactPostalAddressesKey) {
var postalAddresses = [CNLabeledValue<CNPostalAddress>]()
for address in self.contactAddresses {
let postalAddress: CNLabeledValue<CNPostalAddress> = CNLabeledValue(label: CNLabelOther, value: address)
postalAddresses.append(postalAddress)
}
mutableContact.postalAddresses = postalAddresses
}
let saveRequest = CNSaveRequest()
if isNewContact {
saveRequest.add(mutableContact, toContainerWithIdentifier: nil)
} else {
saveRequest.update(mutableContact)
}
do {
try contactStore.execute(saveRequest)
} catch let error as NSError {
print(error.localizedDescription)
let alertController = UIAlertController(title: "Failed to save/update contact!", message: "Unfortunatly, the app couldn't add or make modifications to your contact. Please try again or use the Contacts app to preform changes.", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "Okay", style: .cancel) {
action in
self.dismiss(animated: true, completion: nil)
}
alertController.addAction(cancelAction)
self.present(alertController, animated: true, completion: nil)
}