Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何根据行与另一个实体的关系从一个实体获取行?_Ios_Core Data_Nspredicate - Fatal编程技术网

Ios 如何根据行与另一个实体的关系从一个实体获取行?

Ios 如何根据行与另一个实体的关系从一个实体获取行?,ios,core-data,nspredicate,Ios,Core Data,Nspredicate,我有两个实体: 轨道: 创建数据 地点: 海拔高度 …(在“位置”中还有7个属性) 轨迹有一个属性“createdDate”,其中包含一个到多个到的位置 我需要选择Track.createdDate==“which-date-I-want”所在的所有位置 (在SQL中,它是一个连接,很容易实现。) 在这里我不知道该怎么办 Location实体没有“createdDate”属性,因为我相信foreignKey是由CoreData本身处理的。如果我查看sqlite文件,我可以看到每一个轨迹的一组位置

我有两个实体: 轨道: 创建数据

地点: 海拔高度 …(在“位置”中还有7个属性)

轨迹有一个属性“createdDate”,其中包含一个到多个到的位置

我需要选择Track.createdDate==“which-date-I-want”所在的所有位置 (在SQL中,它是一个连接,很容易实现。) 在这里我不知道该怎么办

Location实体没有“createdDate”属性,因为我相信foreignKey是由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*谓词=[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];