0

これは私が尋ねる必要のない非常に些細なことのように思えますが、私はそこに何も見たことがありません. オブジェクトの配列 (または「セット」) を CoreData に保存すると、常に順不同で返されるのはなぜですか? 各配列には特定の順序はありません(ユーザーがリストを作成します)ので、機能する正規表現またはソート記述子はないと思います。

4

3 に答える 3

2

ユーザー定義の順序を維持するために、データモデルの対応するエンティティに整数属性(「sortOrder」など)を追加できます。この属性を使用して、ユーザーがリスト内の順序を変更したときに管理対象オブジェクトの属性を更新することにより、ソート順を手動で追跡できます。その後、フェッチリクエストを実行し、「sortOrder」属性に基づいてソート記述子を指定して、フェッチから返された結果を元のユーザー定義の順序で取得できます。

iOS 5または10.7以降を使用している場合は、順序付けられた多対数の関係を持つような方法でモデルを作成できます。iOS 5.0 / OSX10.7リリースノートを参照してください。Interface Builderで、関連する関係を選択し、「ordered」チェックボックスをオンにします。

于 2013-03-12T03:23:26.243 に答える
2

NSSet順序は保証されていません。NSArray特定の要素を検索したり、戻りセットの順序を制御したりするには、 が必要です。

于 2013-03-12T02:24:20.890 に答える
1

NSSet 順序付けられていないコレクションであるためです。sortedArrayUsingDescriptors:を介して任意のソート記述子を適用できます。これにより、順序付けられた結果NSSetが返されます。NSArray

Apple のドキュメントを参照してください: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html

于 2013-03-12T02:24:50.730 に答える