在 iOS 上存储和检索数千个地点的最佳方式

Posted

技术标签:

【中文标题】在 iOS 上存储和检索数千个地点的最佳方式【英文标题】:Best way to store and retrieve thousands of places on iOS 【发布时间】:2011-08-17 11:43:06 【问题描述】:

我的情况: 我有一个应用程序需要以某种存储方法存储 10,000 - 30,000 个位置,然后在 MKMapView 上显示为单独的图钉。我还有一台服务器需要能够通过推出更改来添加到数据库中。

通过分组引脚,我消除了 MKMapView 的所有问题,我现在最关注的是速度、存储以及能够添加和替换存储内容。我目前正在做的是我有一个当前 1,000 个位置的 JSON 格式的文本文件,然后它们只是作为数组读取并发送到我的自定义地图视图(那里没有问题)。我唯一的问题是如何更新该文本文件(而不是下载大量数据)并存储近 30,000 个位置。

这甚至可行吗?看来我目前的设置可以非常完美地扩展,只是这个更新系统让我头疼。

【问题讨论】:

【参考方案1】:

您当前的设置不会永远扩展,因为您必须将整个文件以一个块的形式加载到内存中。最终它会变得很大,并且会占用大量内存。在系统内存不足的情况下无法清除内存,系统将关闭您的应用程序,即它无法留在后台,但每次用户切换回它时都必须重新启动。

要更新,您必须加载整个文件,解析 JSON,弄清楚如何更新生成的数据结构,然后将其全部写入文件。过程中任何地方的一个错误都可能损坏整个文件。

您确实需要考虑使用 Core Data 甚至 SQL。 Core Data 有一个学习曲线,但一旦你掌握了它,它就会让你的应用程序这样的设计实现变得微不足道。您还可以获得自动缩放和高效的内存管理。

【讨论】:

以上是关于在 iOS 上存储和检索数千个地点的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 应用程序中本地存储数据的最佳方式是啥? [复制]

存储谷歌地图数据的最佳地点[关闭]

在 sql server 中存储和检索评论回复的最佳方式

使用 Firebase Java API 检索/格式化数据的最佳方式

iPhone:存储和检索连接到 UIControl 的 NSManagedObject 的最佳方式

检索 Firebase NoSQL/JSON 数据的最佳方式?