Я хочу получить только поле Song_Name в записях Musics в CloudKit. Я пытаюсь сделать код ниже, но он по-прежнему извлекает все поля в записи музыки. Я думаю, что нужно компилировать операцию методом publicDB.add (операции), но это не позволяет мне объявить результаты, как я теперь с publicDB.perform (запрос, в ....)Выбирать только определенные поля в cloudkit?
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Musics", predicate: predicate)
let operation = CKQueryOperation(query: query)
operation.desiredKeys = ["Song_Name"]
publicDB.perform(query, inZoneWith: nil) { [unowned self] results, error in
guard error == nil else {
DispatchQueue.main.async {
self.delegate?.errorUpdating(error! as NSError)
print("Cloud Query Error - Refresh: \(error)")
}
return
}
self.items_music.removeAll(keepingCapacity: true)
for record in results! {
let music = Musics(record: record, database: self.publicDB)
self.items_music.append(music)
}
DispatchQueue.main.async {
self.delegate?.modelUpdated()
}
}
}
Пожалуйста, определите, что «не работает». Это самая бесполезная фраза, которую может использовать программист. Быть конкретной. Это ошибка при компиляции? Это крушение? Это просто не делает то, что вы ожидаете? [Изменить] ваш вопрос с сообщением об ошибке или информацией об отладке. Четко объясните, что на самом деле делает ваш код, и четко объясните, что вы ожидаете от него. Помогите людям помочь вам. Не публикуйте эту информацию в комментариях. Пожалуйста, отредактируйте свой вопрос с соответствующей информацией. – rmaddy
@rmaddy Я отредактировал описание, да, я заметил это сейчас. Простите за это. –