8

我有一个NSMangedObject包含NSSetother 的NSManagedObjects.

我需要检查这些对象是否有值NSSet,然后返回它们。

我使用 MagicalRecord 来获取数据。

所以我需要这样的东西:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"stringObjects contains %@", string];

因此,如果 NSSet stringObjects 包含一些我正在寻找的字符串,那么返回我请求的对象。

这里有一个注意事项:stringObjects(例如,它代表我的名称NSSet)它NSSet包含 NSManagedObjects,所以我需要通过一些 id 搜索它们(例如 string_id 属性)。

那么模型看起来像这样

NSSet *set = MainObject.stringObjects;
NSString *string_id_for_first_object = [[[set allObjects] objectAtIndex:0] string_id];

只是为了更好地理解关系。

但问题是如何创建谓词来检查 NSSet 是否包含所需的 id。

4

1 回答 1

17

如果我正确理解您的问题,是从一个实体A到另一个实体BstringObjects的一对多关系,并且B有一个属性。string_id

要使用给定的 查找与任何B对象相关的所有A对象,请使用:string id

NSString *stringId = …; // The string that you are looking for
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY stringObjects.string_id == %@", stringId];
于 2013-11-11T11:51:20.717 回答