Я не понимаю, как лучше всего сохранить объект, содержащий массив других объектов в CloudKit.
Скажем, у меня есть приложение со списком дел, в котором есть разные коллекции элементов. Как мне сохранить / получить всю коллекцию предметов?
Могу ли я иметь коллекцию типа Record, которая будет иметь строковый атрибут с именем «Name», а затем атрибут списка ссылок с именем «Items»?
Я знаю, что у элемента типа Record должен быть ссылочный атрибут под названием «Collection», потому что CloudKit ссылается от дочернего объекта на его родительский.
Мне удалось сохранить коллекцию без каких-либо экземпляров элемента со следующим кодом
func addCollection(collection: Collection!, completion: (error: NSError!) -> ()) {
if collection == nil
return
}
let collectionRecord = CKRecord(recordType: "Collection")
CollectionRecord.setObject(collection.name, forKey: "Name")
privateDB.saveRecord(collectionRecord) {
record, error in
dispatch_async(dispatch_get_main_queue()) {
completion(error: error)
}
}
}
Другой вариант - при сохранении коллекции перебрать все экземпляры элемента, а также сохранить их по отдельности, их ссылочный атрибут для коллекции устанавливает соединение на стороне CloudKit, но это кажется слишком большим количеством сетевых вызовов.