4

我有两个实体,它们之间存在一对多关系。持有“许多”的实体具有预期的 NSSet 属性。我不确定如何访问 NSSet 中的特定元素。NSSet 包含具有多个属性的对象,其中之一是 currentWeek。我想访问我的 NSSet 中具有特定 currentWeek 的对象。

我知道我可以做一个 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 只有一个对象,您可以在 objectsWithDesiredWeek 集合上调用 -anyObject 来获取您的对象。如果您可以拥有多个具有相同 currentWeek 的对象,那么在 objectsWithDesiredWeek 上调用 -allObjects 方法将为您提供一个包含所有使用所需周的对象的数组。

于 2011-02-15T18:49:50.517 回答