gpt4 book ai didi

iphone - 在 iOS 上使用 coredata 对地理空间项进行排序。更新所有 'distance' 属性的最快方法

转载 作者:可可西里 更新时间:2023-11-01 03:55:30 26 4
gpt4 key购买 nike

我正在开发一款应用程序,您可以使用它来搜索项目并根据距给定点的距离进行排序。我使用的方法是,当我从远程 API 获取数据时,我计算与当前位置的距离并将其存储为 CoreData 托管对象的属性。当我坐在家里开发时,这非常有效,但是当我在设备上使用,然后将设备移动到不同的位置时,属性就会不正确,因为所有元素的距离现在都已更改。

我正在考虑的方法是遍历整个核心数据存储,并在 iPhone 改变位置时更新距离属性。

明显的问题是,我无法对每一个 Action 都执行此操作,因为每次用户移动一英寸时,我都会遍历完整的 CoreData 存储。这会耗尽电池并导致用户体验缓慢

一些解决方案:

  1. 我可以限制存储在核心数据中的项目数量。一般来说,相关项目不应超过 100 个左右。
  2. 我可以限制重新计算的次数,方法是仅在用户位置发生重大变化时重新计算。
  3. 我可以在后台进行所有重新计算。

虽然这些解决方案应该可行,但我想一定有更优雅的解决方案。

有人解决过类似的问题吗?

最佳答案

您可能知道,您可以使用 distanceFilter 和 desiredAccuracy 配置 CLLocationManager。这涵盖了第 2 项。

100 项根本不会对核心数据造成压力,除非它们是巨大的项目。

而且您应该始终尝试在后台执行非 UI 操作。

所以,我认为您已经掌握了它;这种方法没有任何不雅之处。

尝试一下,看看会遇到什么性能问题(如果有的话)。

关于iphone - 在 iOS 上使用 coredata 对地理空间项进行排序。更新所有 'distance' 属性的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com