获取具有To-Many关系的对象,其中attribute可以是多个字符串

时间:2013-09-26 01:42:59

标签: ios objective-c core-data nspredicate nsfetchrequest

我很难将正确的搜索词放在一起找到这个答案,所以我想我会试着问一下。我还在了解Core Data。

我有一个玩家实体和一个学校实体。玩家与学校有很多关系。

我想要所有Player对象,其中School name属性可以是多个值中的一个(即,我想要所有已经去过Stanford,Yale或Duke的玩家)。我想我需要使用'IN'子句,比如

[NSPredicate predicateWithFormat:@"schools.name IN ("%@", "%@", "%@"), @"Stanford", @"Yale", @"Duke"];

3 个答案:

答案 0 :(得分:1)

不要在谓词格式字符串

中引用
[NSPredicate predicateWithFormat:@"ANY schools.name IN (%@, %@, %@)", @"Stanford", @"Yale", @"Duke"];

但这是一段无用的代码。鉴于NSArray的名称,我相信你可以做到这一点:

[NSPredicate predicateWithFormat:@"ANY schools.name IN %@", arrayOfNames];

答案 1 :(得分:1)

终于明白了。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY schools IN %@", schoolObjectArray];

从玩家到学校的关系是学校,schoolObjectArray包含我想要的学校NSManagedObjects。

答案 2 :(得分:0)

可能?

[NSPredicate predicateWithFormat:@"schools.name IN (\"%@\", \"%@\", \"%@\")", @"Stanford", @"Yale", @"Duke"];