На основании документации Apple, lastModifiedUserRecordID - это системное поле, которое автоматически генерируется в iCloud.
Я хочу получить записи из общедоступной базы данных iCloud, которая была в последний раз изменена мной.
Я установил «ifiedBy »как« Запрашиваемый »на панели инструментов CloudKit и добавил этот предикат:
let userId = CKRecord.Reference(recordID: userCKRecordID, action: .none)
lastModifiedPred = NSPredicate(format: "lastModifiedUserRecordID = %@", userId)
И это не возвращает никаких результатов. Если я удаляю этот предикат, он возвращает 1 результат, и на информационной панели я вижу, что последний измененный идентификатором записи (recordName) совпадает с именем пользователя recordName, которое я отправляю.
Как ни странно, использование "creatorUserRecordID" и передача того же значения, что и выше, возвращает правильные результаты, но мне нужен lastModifiedBy.
РЕДАКТИРОВАТЬ: В соответствии с предложениями я попытался использовать фактическое userCKRecord.recordName в качестве строки и отправить этот предикат в CloudKit.
lastModifiedPred = NSPredicate(format: "lastModifiedUserRecordID = %@", userCKRecord.recordName)
и получил эту ошибку:
"Поле \ '___ifiedBy \' имеет тип значения REFERENCE и не может быть
запрашивается с использованием значения фильтра типа STRING "
Как я уже упоминал выше, я могу нормально запросить creatorUserRecordID, используя исходный предикат вверху (используя CKRecord.ID), но он просто не работает для lastModifiedUserRecordID.