从NSSet检索NSManagedObject

Chr*_*rts 4 nsset nsmanagedobject ios

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

我知道我可以做一个FetchRequest来找到它,但我认为使用NSSet有一种更简单的方法.

Sim*_*een 10

你有几个选择.

NSArray* objectsArray = [yourSet allObjects];
Run Code Online (Sandbox Code Playgroud)

这将使用集合中的所有对象填充objectsArray,此时您可以枚举它们以查找所需的对象.

你也可以使用这样的谓词:

NSPredicate *desiredWeekPredicate = [NSPredicate predicateWithFormat:@"currentWeek == %d", currentWeekYouWant];
NSSet *objectsWithDesiredWeek = [yourSet filteredSetUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

(根据你如何存储currentWeek,你的谓词看起来会有所不同).如果每个currentWeek只有一个对象,则可以在objectsWithDesiredWeek set上调用-anyObject来获取对象.如果你可以有多个具有相同currentWeek的对象,那么在objectsWithDesiredWeek上调用-allObjects方法将获得一个包含所有使用所需周的对象的数组.