iOS Contacts Framework - как сохранить / создать новый магазин контактов - PullRequest
0 голосов
/ 16 октября 2018

Я собираюсь программно создать новое хранилище контактов и сохранить в нем контакты в Swift.

При попытке сохранить контакт и с помощью toContainerWithIdentifier: я передал строковое значение в контейнерИдентификатор однако я получаю следующую ошибку:

Тема 1: Неустранимая ошибка: 'try!'В выражении неожиданно возникла ошибка: Ошибка Domain = CNErrorDomain Code = 200 «Обновленная запись не существует» UserInfo = {CNInvalidRecordIdentifiers = (Local), NSLocalizedDescription = Обновленная запись не существует, NSLocalizedFailureReason = Запрос сохранения не выполнен, поскольку он обновляет запись, которая выполняетне существует или уже был удален.}

Если я использую этот код toContainerWithIdentifier:nil, контакт сохраняется правильно в хранилище по умолчанию, поэтому я знаю, что с моим кодом сохранения нет проблем.

Это довольно простой тест, связанный с кнопкой.Если я использую что-то еще в toContainerWithIdentifier, кроме nil, я получаю ошибку.

    @IBAction func testAdd(_ sender: UIButton) {
    contact.givenName = "John"
    contact.familyName = "Appleseed"
    let store = CNContactStore()
    let saveRequest = CNSaveRequest()
    saveRequest.add(contact, toContainerWithIdentifier:nil)
    try! store.execute(saveRequest)
}

1 Ответ

0 голосов
/ 16 октября 2018

создать новый магазин контактов

Вы не можете.Все понятие не имеет смысла.Вот почему это терпит неудачу.Любой магазин, в который вы можете сохранить, уже должен существовать.У вас не должно быть причин использовать какой-либо идентификатор, кроме nil, хранилища по умолчанию.

...