OperationEntity
というエンティティがあります。それはOperationInput
と多対多の関係にあります。コアデータに順次データを格納する方法は?
私が保存されているすべてのOperationEntity
を表示するテーブルビューコントローラを持っています。ユーザがセルの1つをタップすると、別のテーブルビューコントローラに行くセグが実行されます。そのテーブルビューコントローラは、OperationInput
のすべてをOperationEntity
と表示します。
Xcodeが私のために生成したNSManagedObject
サブクラスでは、availableInputs
プロパティがタイプNSSet?
であると宣言されています。私はセットがその要素の順序を維持していないことを知っています。これは私がこの順に入力を保存するかもしれないことを意味します
a
b
c
しかし、私は戻ってそれを取得する場合、私はこの順序でそれを得るかもしれない代わりに
c
a
b
が、私は、入力がでなりたいです彼らが救われたのと同じ順序!
この問題を解決するにはどうすればよいですか?
id
プロパティをOperationInput
に追加すると考えました。私が新しいものを保存するたびに、IDを増やします。私がそれをフェッチするとき、私はidに従って配列をソートします。しかし、私はこれよりも良い方法があると確信しています。
多分NSSet?
からNSArray?
に変わりますか?それはうまくいかない、それ?
私はStack Overflowで質問する人はいませんでした。
*これまでに質問と回答がありました。あなたは '[core-data] preserve order'を検索するときにもっと答えを見つけるでしょう。 –
@MartinRしかし、その質問は時代遅れのようです。 Erik Johanssonの答えから、これは 'id'を追加するよりも良い方法で実行できることがわかります。 – Sweeper
参照された質問に対する受け入れられた答えは、順序付けされた関係についても言及しています。*「iOS 5をターゲットにできるならば、任意の順序付けされたコアデータ関係に新しいNSOrderedSet機能を使用できます。それはまさにErikが以下に示唆したものです。 - idフィールドを追加することも良い解決策であり、順序付けされた関係は扱いにくい可能性があるため、利点があります。 –