Проблема CKShare и CKRecord с операцией modifyRecordsCompletionBlock

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

Мой код

ПРИМЕЧАНИЕ - privateprojects - это [CKRecord], который содержит мою базу данных записей.

@IBAction func shareRecord(_ отправитель: AnyObject) {

    let controller = UICloudSharingController { controller,
        preparationCompletionHandler in

        let share = CKShare(rootRecord: self.publicprojects[0])
        share[CKShare.SystemFieldKey.title] = "Shared Record" as CKRecordValue
        share.publicPermission = .readOnly

        let modifyRecordsOperation = CKModifyRecordsOperation(
            recordsToSave: [privateprojects[0], share],
            recordIDsToDelete: nil)

        modifyRecordsOperation.configuration.timeoutIntervalForRequest = 10
        modifyRecordsOperation.configuration.timeoutIntervalForResource = 10

        modifyRecordsOperation.modifyRecordsCompletionBlock = {
            records, recordIDs, error in
            if error != nil {
                print(error?.localizedDescription as Any)
            }
            preparationCompletionHandler(share,
                                         CKContainer.default(), error)
        }
        self.publicdatabase.add(modifyRecordsOperation)
    }

    controller.availablePermissions = [.allowPublic, .allowReadOnly]
    controller.popoverPresentationController?.barButtonItem =
                sender as? UIBarButtonItem

    present(controller, animated: true)
}

Любая помощь очень ценится.

0 ответов

Другие вопросы по тегам