7

私は次のコードを持っています:

self.temporaryImageArray = [(NSSet *)[[array objectAtIndex:0] images] allObjects]

配列はBand、CoreDataモデルのオブジェクトを保持しています。それはNSSet「画像」と呼ばれるプロパティとして持っています。

これを使用しtemporaryImageArrayて、タイムスタンプを介して画像を更新する必要があるかどうかを判断します。私はいくつかの非常にランダムな振る舞いに出くわしました、そして私の質問は今です:

[NSSet allObjects]セットからオブジェクトを順番なしでランダムに返しますか?

これを防ぐ方法や、順番に返してもらう方法はありますか?それは私のコードの複雑さを大いに軽減するでしょう。

4

3 に答える 3

13

NSSet順序付けられていないコレクションです。オブジェクトの「順序」が何であるかはわかりません。したがって、を呼び出すと-allObjects、順序付けられていない状態で返されます。

-allObjects状態に関するドキュメントに注意してください。

セットのメンバーを含む配列、またはセットにメンバーがない場合は空の配列。配列内のオブジェクトの順序は定義されていません。

(強調鉱山)

于 2011-09-09T23:26:53.910 に答える
4

セットには順序がありません。ただし、10.7(Lion)には、NSOrderedSetクラスがあります。これはiOS4.0では利用できません。

于 2011-09-09T23:25:32.110 に答える
3

NSOrderedSetとNSMutableOrderedSetがiOS5で利用できるようになり、最新の状態に保たれます。

ここにリンクがあります

于 2012-01-11T20:03:35.687 に答える