私は基本的な質問があります。 NSManagedObjectContextに対して実行するNSFetchRequestがあるとします。フェッチ要求に明示的にソート記述子が設定されていない場合、オブジェクトは毎回ランダムであるか、最初に管理オブジェクトコンテキストに追加された順序で配列に吐き出されますか?私はドキュメントのどこにでもこの回答を見つけることができません。コアデータフェッチ(NSFetchRequest)は、デフォルトで特定の方法でソートされていますか?
答えて
いいえ、注文することは保証されていません。使用しているデータ・ストアのタイプ(一度も試したことがない)に応じて一貫した順序付けが行われることもありますが、何らかの形で依存する必要はありません。
作成日によって簡単に注文できます。あなたのエンティティに日付属性を追加し、現在の日付にそれをawakeFromInsert
に初期化し、あなたのフェッチにそのソート記述子を指定してください。
注文は「毎回ランダム」ではないかもしれませんが、あなたが知っている限り、それに依存することはできません。特定の順序が必要な場合は、ソート記述子を使用します。
ここに2つの質問があります:毎回同じ順序で出てくるのでしょうか?そして、それは挿入注文に注文ですか?
設定された順序で出てきますが、これはいくつかの順序です。 NSSetは単なるインタフェースであり、NSSetを実装するプライベートクラスがあることに注意してください。つまり、NSSetのいくつかのインスタンスは、allObjectsを呼び出すと返されますが、いくつかの一貫性のある順序で返すかもしれませんが、ほとんどの場合、ハッシュされた辞書としてほぼ普遍的に実装されています。
ハッシュアルゴリズムは、格納される内容とハッシュされる方法によって大きく変化するため、毎回同じ順序で出てくることがありますが、何か変わったときに別の時間を守ることができます少し。
技術的には、実際にはランダムではなく、安定した順序である可能性があります。
2番目の質問には、ほぼ確実にNOTの挿入順であると言います。
awakeFromInsertを処理するためのMarcの提案は良いものであり、あなたが望むものです。
注文上の保証はありません。たとえば、結果をランダムな順序で返すNSAtomicStoreまたはNSIncrementalStoreを実装できます。これは完全に正しいでしょう。私は、SQLiteストアが異なるバージョンのオペレーティングシステムで異なる順序を返すのを見てきました。
- 1. コアデータフェッチ結果のソート
- 2. IOSコアデータフェッチ要求 - ソート
- 3. javaから渡された特定のソート順でソートする方法をoracleに伝える方法は?
- 4. デフォルトのfind()は暗黙的に_idでソートされますか?
- 5. グリッドがロードされるときに特定のフィールドでjqgridのデフォルトのソート
- 6. NSFetchRequestが初期化されないのはなぜですか?
- 7. PHPの特定のテーブルの下でデフォルトでリストをソート
- 8. アクセスするには特定のシステムで定義されていない、デフォルトのen-USカルチャですか?
- 9. NSFetchRequest "returnsDistinctResults"は無視されているようです
- 10. iOS:特定のキーでソートされた関係を維持する方法
- 11. 特定のiOSでデフォルトのUISwitchに使用されているUISwitchサムイメージ/シャドウを取得する方法は?
- 12. Dojo Gridの特定の列で、デフォルトのソート方向をどのように指定しますか?
- 13. 指定された順序でリストをソートする方法は?
- 14. ソート関数内からソートされていないアイテムを返す方法は?
- 15. QTで特定の行範囲のQtableWigetをソートする方法
- 16. ObjectiveC UISwitchはデフォルトでOFFに設定されています
- 17. gmaps4railsデフォルトでは地形ビューに設定されています
- 18. ソートアルゴリズムはNSArrayの安定したソートで使用されていますか?
- 19. 特定の列でcsvをソートする方法
- 20. コアデータフェッチのNSPredicateについて
- 21. オブジェクト属性ではなく特定のオブジェクトを使用したコアデータフェッチ
- 22. テンプレートから作成されたNSFetchRequestにソート記述子を適用する
- 23. iOSで特定のユーザーのデフォルトを呼び出す方法
- 24. 特定のチェックボックスをチェックする方法はチェックされているかどうかチェックされていない
- 25. Googleマップでどのポインタがドラッグされているかを特定する方法はありますか
- 26. SailsJSではデフォルトのミドルウェアの注文設定がデフォルトでコメントアウトされているのはなぜですか?
- 27. jsonデータを特定の値に基づいてソートする方法は?
- 28. .pyファイルはMacではXcodeにデフォルト設定されていますか?
- 29. ソートされたコンボボックスにデフォルト値を設定するにはどうすればよいですか?
- 30. ステップカウンターはバックグラウンドでデフォルトで実行されていますか?