【问题标题】:Core Data - NSPredicate to filter to-many relationship核心数据 - NSPredicate 过滤多对多关系
【发布时间】:2011-02-01 00:57:45
【问题描述】:

我有 2 个实体,任务和列表。每个任务都与一个名为“list”的List对象存在一对一关系,而与List存在反向关系,与名为“tasks”的Task存在一对多关系。

我正在尝试使用带有 NSPredicate 的 fetch 请求来获取属于指定 List 的所有 Task 对象:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list=%@", theList];
[fetchRequest setPredicate:predicate];

(其中“theParent”是对 List 对象的引用)。但是,这不会返回任何获取的对象。如果我取出谓词,则返回对象(所以我知道它们存在,并且通过 NSLogging theList 我知道它有与之关联的 Task 对象)。

谢谢

【问题讨论】:

    标签: iphone cocoa-touch core-data nspredicate nsfetchrequest


    【解决方案1】:

    这可能是你的谓词中的一个简单的错字吗?

    当我假设你真正想要的是“list==%@”时,你就有了“list=%@”

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list == %@", theList];
    [fetchRequest setPredicate:predicate];
    

    【讨论】:

    • kharrison 和/或@sza:你能澄清一下你的意思吗? The NSPredicate documentation 声称 === 在用于谓词格式字符串时是 100% 等效的。是否存在未记录的差异?
    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多