我有两个实体,它们之间存在一对多关系。持有“许多”的实体具有预期的 NSSet 属性。我不确定如何访问 NSSet 中的特定元素。NSSet 包含具有多个属性的对象,其中之一是 currentWeek。我想访问我的 NSSet 中具有特定 currentWeek 的对象。
我知道我可以做一个 FetchRequest 来找到它,但我认为使用 NSSet 有一种更直接的方法。
我有两个实体,它们之间存在一对多关系。持有“许多”的实体具有预期的 NSSet 属性。我不确定如何访问 NSSet 中的特定元素。NSSet 包含具有多个属性的对象,其中之一是 currentWeek。我想访问我的 NSSet 中具有特定 currentWeek 的对象。
我知道我可以做一个 FetchRequest 来找到它,但我认为使用 NSSet 有一种更直接的方法。
你有几个选择。
NSArray* objectsArray = [yourSet allObjects];
这将使用集合中的所有对象填充 objectsArray,此时您可以枚举它们以查找所需的对象。
你也可以使用这样的谓词:
NSPredicate *desiredWeekPredicate = [NSPredicate predicateWithFormat:@"currentWeek == %d", currentWeekYouWant];
NSSet *objectsWithDesiredWeek = [yourSet filteredSetUsingPredicate:predicate];
(根据您存储 currentWeek 的方式,您的谓词看起来会有所不同)。如果您每个 currentWeek 只有一个对象,您可以在 objectsWithDesiredWeek 集合上调用 -anyObject 来获取您的对象。如果您可以拥有多个具有相同 currentWeek 的对象,那么在 objectsWithDesiredWeek 上调用 -allObjects 方法将为您提供一个包含所有使用所需周的对象的数组。