【发布时间】: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