如何检查的对象是对象的NSSet内由CoreData使用predicateWithFormat?(H

2019-07-29 06:03发布

在我的iPhone应用程序,我尝试有一个TableViewController以显示这些照片共享同一个标签列表(currentTag在下面的代码)。 照片和标签是“多对多”,在数据库中的关系。 每张照片都有一个名为“标签”的属性,它的类型是NSSet中。 每个标签都有一个名为“照片”的属性,它的类型是NSSet中,太。 标签有一个名为“名”的属性。

我试图做下面的代码:

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

问题是我不能为引号的原因里面做predicateWithFormat很多事情。 而关键的词“包含”在这里没有工作,他们是唯一的字符串。 我也试过

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

没有运气要么...

还有一个,我发现有人有类似的问题在这里 ,然后我尝试下面的代码,仍然没有显示在表视图控制器。 但是,如果我评论的路线,所有的照片显示出来。

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

有人能给帮助吗?

Answer 1:

使用任何:

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


文章来源: How to check if an objects is inside of a NSSet of objects by using predicateWithFormat in CoreData?