如何通过在CoreData中使用predicateWithFormat来检查对象是否在NSSet对象中?

时间:2012-05-04 10:00:55

标签: core-data nsset predicatewithformat

在我的iPhone应用程序中,我尝试使用TableViewController来显示共享一个相同标签的照片列表(下面的代码中的currentTag)。照片和标签在数据库中是“多对多”的关系。每张照片都有一个名为“tags”的属性,其类型为NSSet。每个标签都有一个名为“photos”的属性,其类型也是NSSet。 Tag有一个名为“name”的属性。 relationship

我正在尝试执行以下代码:

 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Photo"];
 request.predicate = [NSPredicate predicateWithFormat:@"tags contains %@",currentTag];

问题是我不能在predicateWithFormat中做很多事情因为引号。并且关键词“包含”在这里不起作用,它们仅用于字符串。我也试过

 [NSPredicate predicateWithFormat:@"%@ IN tags",currentTag]

没有运气......

还有一个,我发现有人在here有一个类似的问题,然后我尝试下面的代码,表视图控制器中仍然没有显示任何内容。但是,如果我对该行进行评论,则会显示所有照片。

 [NSPredicate predicateWithFormat:@"self in %@",[currentTag photos]]

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:8)

使用任何:

[NSPredicate predicateWithFormat:@"ANY tags == %@",currentTag];