我的iOS Core Data数据库中有一组实体对象,用于描述某个位置的内容.我们称实体位置.我已经通过在Location上有两个属性来实现这一点,这两个属性引用了位置 – 纬度和经度,两个都是双倍的.还有其他元素,如名称.
我使用NSFetchedResultsController将实体绑定到UITableViewController.我想要做的是将结果按距离分配到给定的CLLocationCoordinate2D.在一个非常理想的场景中,我能够刷新该列表以基于新位置重新计算排序.因此,这种类型将依赖于两个键,以及第三个“静态”变量(一个在集合中的项目之间不变的变量).
如果我用NSSortDescriptors排序任意列表,我想我可以弄清楚如何做到这一点.但是,我不控制NSFetchedResultsController中如何使用排序描述符.
有没有办法可以配置我的实体,我的NSFetchedResultsController,我的NSSortDescriptors等来完成这个?我怀疑答案不在于创建一个花哨的NSSortDescriptor,而是在实体中创建一个瞬态属性来表示与我的距离,并定期重新计算该属性.但是,我对核心数据足够新,我不确定如何做到这一点(迭代所有实体并重新计算字段).我也不确定NSSortDescriptors是否可以处理Transient属性.