【问题标题】:How do I fetch rows from one Entity based on their relationship to another?如何根据它们与另一个实体的关系从一个实体中获取行?
【发布时间】:2013-10-20 02:24:32
【问题描述】:

我有两个实体: 追踪: 创建日期

地点: 高度 ...(“位置”中还有 7 个属性)

Track 有一个属性 'createdDate' 和一个 To-Many to Location。

我需要选择 Track.createdDate == "whatever-date-i-want" 的所有位置 (在 SQL 中它是一个连接,很容易做到。) 在这里我不知道该怎么办......

Location 实体没有“createdDate”属性,因为我相信foreignKeys 是由CoreData 自己处理的。如果我查看 sqlite 文件,数据会完美输入,我可以看到每个轨道的一堆位置(因为 GPS 将它们放入 CD 中)

我猜这是做谓词的一种特殊方式。我尝试了以下行无济于事:

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(Track.createdDate == %@)", currentTrack.createdDate];

但它没有用。我也尝试在其中放置一个属性,如下所示:

@property (nonatomic,retain) Track *lookupTrack;

并尝试:

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(lookupTrack.createdDate == %@)", currentTrack.createdDate];

也无济于事...想法?谢谢

编辑: 刚才我试过了:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ANY track.createdDate == %@)", currentTrack.createdDate];

这给了我错误'keypath createdDate not found in entity'

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ALL track.createdDate == %@)", currentTrack.createdDate];

这给了我错误“不支持的谓词(空)”

编辑: 这是一些截图

【问题讨论】:

    标签: ios core-data nspredicate


    【解决方案1】:

    您必须在 核心数据模型检查器。

    • 定义从“位置”到“轨道”的一对一关系,称之为“轨道”。
    • 将“track”定义为与“Track”中的一对多关系的反向关系 到“位置”。

    那么谓词将是

    [NSPredicate predicateWithFormat: @"track.createdDate == %@", currentTrack.createdDate]
    

    【讨论】:

    • @Beau:逆关系叫什么?你在谓词中使用它吗?反比关系是对一还是对多?
    • 在上方添加截图
    • @Beau:看起来是正确的。但是我的答案中的谓词应该可以工作。
    • 不是... CD 太笨重了
    • 是的,和上面列出的一样。
    【解决方案2】:

    我很抱歉...这是我喜欢的...

    我有

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createdDate" ascending:NO];
    

    它应该在哪里

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"track.createdDate" ascending:NO];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      相关资源
      最近更新 更多