Sono confuso su come salvare al meglio un oggetto che contiene una serie di altri oggetti in CloudKit.Salvataggio di una matrice di oggetti in CloudKit
Dire che ho una app di elenco di cose da fare, che ha diverse raccolte di articoli. Come faccio a salvare/recuperare un'intera collezione di oggetti?
Avrei un tipo di record di raccolta, che avrebbe un attributo di stringa chiamato "Nome" e quindi un attributo di elenco di riferimento denominato "Elementi"?
So che il tipo di record di Item deve avere un attributo di riferimento chiamato "Collection", a causa di come i riferimenti CloudKit da un oggetto figlio al suo genitore.
sono riuscito a salvare una raccolta senza istanze della voce con il seguente codice
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)
}
}
}
L'altra opzione è quando si salva un Collection, a ciclo attraverso tutte le istanze di Item e anche salvare quelli singolarmente, la loro Attributo di riferimento alla raccolta che effettua la connessione sul lato CloudKit, ma sembra troppe chiamate di rete.
Come si garantisce quindi l'ordine degli articoli nella raccolta? Ho paura che durante il recupero degli elementi, sarebbero arrivati in un ordine diverso rispetto a quando sono stati salvati ... –
È possibile aggiungere un ordinamento come questo: query.sortDescriptors = [NSSortDescriptor (chiave: "creationDate", crescente: false)] –
Sì, ma ho bisogno di mantenere l'ordine dell'array impostato dall'utente, non applicare un ordinamento ogni volta che recupero l'array. –