Ошибка сохранения CKRecord и CKShare в CKModifyRecordsOperation

Я пытаюсь сохранить CKRecord (уже созданный и сохраненный в базе данных) и новый CKShare, но постоянно получаю сообщение об ошибке: Необязательно("Не удалось изменить некоторые записи"). Вот мой код:

    let csc = UICloudSharingController { controller, preparationCompletionHandler in

        let share = CKShare(rootRecord: user)
        share[CKShareTitleKey] = "My Share" as CKRecordValue
        share.publicPermission = .readWrite

        let mro = CKModifyRecordsOperation(recordsToSave: [user, share], recordIDsToDelete: nil)

        mro.timeoutIntervalForRequest = 10
        mro.timeoutIntervalForResource = 10

        mro.modifyRecordsCompletionBlock = { records, recordIDs, error in
            if error != nil {
                print("ERROR IN MODIFY RECORDS COMPLETION BLOCK\n")
                print(error?.localizedDescription)
            }
            preparationCompletionHandler(share,CKContainer.default(), error)
        }
        privateData.add(mro)
    }
    csc.availablePermissions = [.allowPrivate,.allowReadWrite]
    self.present(csc, animated:true)
}

Проблема в этом методе: modifyRecordsCompletionBlock. Может кто-нибудь объяснить мне, почему это происходит?

Заранее спасибо!


person Pedro de Sá    schedule 16.11.2016    source источник


Ответы (2)


Я понял

Все, что вам нужно сделать, это создать частную пользовательскую CKZone и сохранить в ней свои CKRecord и CKShare, вы не можете использовать облачный набор зон по умолчанию, который вам дает!

person Pedro de Sá    schedule 18.11.2016
comment
Можете ли вы обновить свой ответ, указав, сделали ли вы это с помощью кода или на панели инструментов CloudKit? - person MwcsMac; 31.01.2019

Чтобы оставить общую запись, вы должны удалить запись CKShare из общей базы данных, иначе вы получите ошибки.

person Pierre-Luc Beaudoin    schedule 09.03.2021