4

1 対多の関係を持つ 2 つのエンティティがあります。「多数」を保持するエンティティには、期待される NSSet プロパティがあります。よくわからないのは、NSSet の特定の要素にアクセスする方法です。NSSet には、いくつかのプロパティを持つオブジェクトが含まれており、そのうちの 1 つが currentWeek です。特定の currentWeek を持つ NSSet 内のオブジェクトにアクセスしたいと考えています。

私はそれを見つけるために FetchRequest を実行できることを知っていますが、NSSet を使用するより簡単な方法があると思います。

4

1 に答える 1

10

いくつかのオプションがあります。

NSArray* objectsArray = [yourSet allObjects];

これにより、objectsArray にセット内のすべてのオブジェクトが取り込まれ、その時点でオブジェクトを列挙して、必要なオブジェクトを探すことができます。

次のような述語を使用することもできます。

NSPredicate *desiredWeekPredicate = [NSPredicate predicateWithFormat:@"currentWeek == %d", currentWeekYouWant];
NSSet *objectsWithDesiredWeek = [yourSet filteredSetUsingPredicate:predicate];

(述語は、currentWeek の格納方法によって異なります)。currentWeek ごとに 1 つのオブジェクトしかない場合は、objectsWithDesiredWeek セットで -anyObject を呼び出すだけでオブジェクトを取得できます。同じ currentWeek を持つ複数のオブジェクトを持つことができる場合、objectsWithDesiredWeek で -allObjects メソッドを呼び出すと、目的の週を使用するすべてのオブジェクトの配列が取得されます。

于 2011-02-15T18:49:50.517 に答える