【问题标题】:How to check if an objects is inside of a NSSet of objects by using predicateWithFormat in CoreData?如何通过在 CoreData 中使用 predicateWithFormat 来检查对象是否在对象的 NSSet 内?
【发布时间】:2012-05-04 10:00:54
【问题描述】:

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

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

 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]]

有人可以帮忙吗?

【问题讨论】:

    标签: core-data nsset predicatewithformat


    【解决方案1】:

    使用任何:

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

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2016-10-24
      相关资源
      最近更新 更多