【发布时间】:2011-04-25 11:12:20
【问题描述】:
我想根据与当前位置的距离对许多位置(航点)进行排序。 当前位置当然是一个移动的目标,因此对于每次位置更新,都需要重新计算每个位置的距离。但仅对附近位置重新计算就足够了。
我目前使用核心数据,并将到当前位置的距离作为属性存储在表中(但只有在更改时才更新),来自 configurecell:atindexpath: 方法。 那种工作,但是当核心数据自动更新所有距离时应用程序没有响应。这适用于 250 个位置,但对于 5000 个它会崩溃。 我需要它为 10.000 个位置工作,尽管我可能只需要 1000 个最近的位置左右。
我还没有尝试过的想法: 将所有距离存储在一个单独的内存数组中,除了记录 id 和距离之外什么都没有。然后按距离对数组进行排序。问题是我不能使用 FetchedResultsController 因为数据库中没有排序字段。
使用谓词根据纬度和经度过滤位置。然后只显示过滤后的位置。
在单独的线程中重新计算距离。
这些想法似乎都不够简单,可以尝试一下。
任何人有建议,不同的想法,我的想法的变化?
【问题讨论】:
标签: iphone objective-c core-data core-location