【问题标题】:Sort by entity name in NSFetchRequest在 NSFetchRequest 中按实体名称排序
【发布时间】:2011-09-19 20:09:42
【问题描述】:

我有一个获取的结果控制器,它应该显示具有多个子实体的某个实体的所有项目。

获取结果控制器中的部分应基于实体名称,即项目所属的子实体。将sectionNameKeyPath 设置为@"entity.name" 有效。

然而,似乎不可能为获取请求获取正确的排序描述符。像[NSSortDescriptor sortDescriptorWithKey:@"entity.name" ascending:YES] 这样的东西会导致像keypath entity.name not found in entity Something 这样的错误。

【问题讨论】:

  • 嘿@mrueg,你找到这个问题的答案了吗?

标签: objective-c ios core-data nsfetchedresultscontroller nsfetchrequest


【解决方案1】:

尝试使用[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; 您不需要前面的实体,因为获取请求已经定义了实体。另请参阅Sort Descriptor Class Reference

【讨论】:

  • +1 绝对是问题所在。 entity.name 的意思是“查找关系命名实体,然后向关系另一端的对象询问其name 属性。由于没有entity 关系,因此排序失败。
  • 这导致keypath name not found in entity Something,其原因显然是我的实体Something没有名为name的属性。即使这样做,也不会导致正确的排序。可以在stackoverflow.com/questions/3931442/… 找到我的问题的稍微不同的表述
  • @TechZen:entity.name应该的意思是“寻找一些属性命名实体(即不仅仅是关系)并询问结果对象为其名称”。唯一的问题是排序是在 SQLite 中执行的,而不是在 NSManagedObjects 上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 2013-07-21
  • 2018-03-26
  • 1970-01-01
相关资源
最近更新 更多