CloudKit内に他のオブジェクトの配列を含むオブジェクトを最適に保存する方法が混乱しています。CloudKitでオブジェクトの配列を保存する
私はアイテムのコレクションが異なるToDoリストアプリがあります。アイテムのコレクション全体を保存/取得するにはどうすればいいですか?
「名前」という文字列属性と「アイテム」という参照リスト属性を持つレコード型のコレクションはありますか?
私は、CloudKitが子オブジェクトからその親を参照する方法のため、レコード型のItemに「Collection」という参照属性が必要であることを知っています。
私は、項目のすべてのインスタンスをループし、次のコード
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)
}
}
}
他のオプションは、コレクションを保存しているとの項目のいずれかのインスタンスなしにコレクションを保存するために管理し、また、個別にそれらを保存してきた彼らReference AttributeをCollectionに追加すると、CloudKit側で接続が行われますが、これはあまりにも多くのネットワークコールのようです。
コレクションのアイテムの順序をどうやって保証しますか?私は、アイテムを取得するときに、保存されたときとは異なる順序で到着することに気づいています... –
このような並べ替え順序を追加することができます:query.sortDescriptors = [NSSortDescriptor(key: "creationDate" false)] –
はい、配列の順序をユーザーが設定したままにしておく必要があります。配列を取得するたびにソートを適用しないでください。 –