Ios 如何根据行与另一个实体的关系从一个实体获取行?
我有两个实体: 轨道: 创建数据 地点: 海拔高度 …(在“位置”中还有7个属性) 轨迹有一个属性“createdDate”,其中包含一个到多个到的位置 我需要选择Track.createdDate==“which-date-I-want”所在的所有位置 (在SQL中,它是一个连接,很容易实现。) 在这里我不知道该怎么办 Location实体没有“createdDate”属性,因为我相信foreignKey是由CoreData本身处理的。如果我查看sqlite文件,我可以看到每一个轨迹的一组位置(GPS将它们塞进CD中),数据就可以完美地进入 我猜这是做谓词的一种特殊方式。我试过下面这句话,但没有用:Ios 如何根据行与另一个实体的关系从一个实体获取行?,ios,core-data,nspredicate,Ios,Core Data,Nspredicate,我有两个实体: 轨道: 创建数据 地点: 海拔高度 …(在“位置”中还有7个属性) 轨迹有一个属性“createdDate”,其中包含一个到多个到的位置 我需要选择Track.createdDate==“which-date-I-want”所在的所有位置 (在SQL中,它是一个连接,很容易实现。) 在这里我不知道该怎么办 Location实体没有“createdDate”属性,因为我相信foreignKey是由CoreData本身处理的。如果我查看sqlite文件,我可以看到每一个轨迹的一组位置
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(Track.createdDate == %@)", currentTrack.createdDate];
但它不起作用。我还试着在那里放置一个属性,如下所示:
@property (nonatomic,retain) Track *lookupTrack;
并尝试:
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(lookupTrack.createdDate == %@)", currentTrack.createdDate];
也无济于事。。。思想?谢谢
编辑:
刚才我试过:
NSPredicate*谓词=[NSPredicate predicateWithFormat:@“(ANY track.createdDate==%@)”,currentTrack.createdDate]强>
这给了我错误“在实体中找不到keypath createdDate”
及
NSPredicate*谓词=[NSPredicate predicateWithFormat:@“(ALL track.createdDate==%@)”,currentTrack.createdDate]强>
这给了我错误“不支持的谓词(null)”
编辑:
这里是一些截图
您必须定义从“位置”到“轨迹”的“反向关系”
核心数据模型检查器
- 定义从“位置”到“轨迹”的一对一关系,称之为“轨迹”
- 将“轨迹”定义为与“轨迹”中的多对多关系相反的关系 到“位置”
[NSPredicate predicateWithFormat: @"track.createdDate == %@", currentTrack.createdDate]
我道歉。。。这是我的类型 我有 它应该在哪里
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"track.createdDate" ascending:NO];
@博:这种反向关系叫什么?你在谓词中使用它吗?是否与一个或多个屏幕截图成反比above@Beau:看起来不错。但是我的答案中的谓词应该是有效的。。。CD是如此之小,与上面列出的相同。
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"track.createdDate" ascending:NO];