【问题标题】:Find latest entity among Core Data relationships?在 Core Data 关系中找到最新的实体?
【发布时间】:2014-02-27 04:22:46
【问题描述】:

是否有NSPredictate 格式用于在多对多关系的实体中获取最新元素?


举例:

拥有一个User 实体和一个Device 实体。

每个User 都有一个名为devices 的To Many 关系。

每个device 都有一个lastConnectedDate

现在我想为特定的user 选择latest 设备。

是否有一个简短的NSPredictate 格式?

【问题讨论】:

  • 我需要排序吗?可能,哦。
  • 使用predicateWithFormat:@"user == %@",user,按lastConnectedDate排序,将fetchLimit设置为1

标签: ios core-data nspredicate entity-relationship


【解决方案1】:

哇,根本不需要NSPredictate。只需对关系数组进行排序,封装到一个名为 latestDeviceUser 方法中。

-(Device*)latestDevice
{
    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"lastConnectedDate" ascending:YES];
    Device *latestDevice = [[self.devices sortedArrayUsingDescriptors:@[sortDescriptor]] firstObject];
    return latestDevice;
}

【讨论】:

  • 这不是一个很好的方法,因为设备将被逐个故障进行评估。 @MikePollard 的建议效率更高。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多