8

有没有办法使用“瞬态”字段或类似的东西,并以某种方式使用 NSFetchedResultsController 进行相应的排序。我想做以下事情:

我在数据库中有地点的位置。当一个人打开列表时,我想在顶部显示最近的地方,然后根据距离进行排序。但很明显,这取决于用户的位置,所以我不能使用静态字段。我希望使用瞬态字段,您可以将其用于节标题。

有没有人可以为这种情况提供解决方案或解决方法?

4

1 回答 1

12

您不能在 SQlite 基础核心数据存储的获取请求中使用瞬态属性。

请参阅“Core Data Programming Guide”中的Fetching Managed Objects :

您不能使用基于瞬态属性的谓词进行获取(尽管您可以使用瞬态属性自己在内存中进行过滤)。...总而言之,如果您直接执行 fetch,则通常不应将基于 Objective-C 的谓词或排序描述符添加到 fetch 请求中。相反,您应该将这些应用于获取的结果。

您可以对 使用瞬态属性sectionNameKeyPath,但即便如此,您也需要基于持久属性的部分的第一个排序描述符。

所以唯一的解决方法可能是获取所有对象,然后对获取的数组进行排序。但是当然,您不再具有获取结果控制器的优势。

于 2012-11-10T21:40:44.047 回答