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