Сохранение CKRecordID в CloudKit

У меня есть CKRecordID, который мне нужно сохранить в CloudKit в качестве ссылки. Однако когда я пытаюсь сохранить его, я получаю следующую ошибку:

Не удается преобразовать значение типа "CKRecordID?" ожидаемому типу аргумента 'CKRecordValue?'

Объявление currentSelectedUser:

var currentlySelectedUser: CKRecordID?

Получение currentSelectedUser в другом CKQuery:

self.currentlySelectedUser = record.creatorUserRecordID

Сохранение currentSelectedUser:

myRecord.setObject(currentlySelectedUser, forKey: "toUser")

Ошибка возникает в 3-й строке кода.

Как сохранить этот CKRecordID в качестве ссылки в другой записи CloudKit?


person user4174219    schedule 19.07.2016    source источник
comment
Обновите свой вопрос соответствующим кодом и укажите точную строку, вызывающую ошибку.   -  person rmaddy    schedule 19.07.2016
comment
@rmaddy, я обновил вопрос соответствующими строками кода   -  person user4174219    schedule 20.07.2016


Ответы (1)


Вы пытаетесь добавить CKRecordID, тип данных которого не поддерживается CKRecord. Как говорится в ошибке, это не соответствует протоколу CKRecordValue.

Создайте CKReference и добавьте его так:

myRecord["toUser"] = CKReference(recordID: currentlySelectedUser!, action: .None)
person Yann Bodson    schedule 27.07.2016