我的NSMangedObject
包含其他NSSet
的{{1}}。
我需要检查这些对象是否在NSManagedObjects
中有值,然后返回它们。
我使用MagicalRecord获取数据。
所以我需要这样的东西:
NSSet
因此,如果NSSet stringObjects包含我正在寻找的字符串,那么返回我请求的对象。
这里有一个注释:stringObjects(例如,它代表我的NSPredicate *predicate = [NSPredicate predicateWithFormat:@"stringObjects contains %@", string];
)它是NSSet
,它包含NSManagedObjects,所以我需要通过一些id(例如string_id属性)来搜索它们。 / p>
那么模型看起来像这样
NSSet
只是为了更好地理解关系。
但问题是如何创建谓词来检查NSSet是否包含所需的id。
答案 0 :(得分:16)
如果我理解你的问题,stringObjects
是一种多对多的关系
从一个实体 A 到另一个实体 B ,而 B 具有一个属性string_id
。
要查找与给定string id
的任何 B 对象相关的所有 A 对象,请使用:
NSString *stringId = …; // The string that you are looking for
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY stringObjects.string_id == %@", stringId];