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

时间:2011-08-17 11:43:06

标签: ios cocoa-touch json core-data storage

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

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

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

1 个答案:

答案 0 :(得分:0)

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

要进行更新,您必须加载整个文件,解析JSON,找出如何更新生成的数据结构,然后将其全部写入文件。进程中任何位置的一个错误都可能损坏整个文件。

您真的需要查看使用Core Data甚至SQL。核心数据有一个学习曲线,但一旦你掌握了它,它就会使你的应用程序实现设计变得微不足道。您还可以获得自动扩展和高效的内存管理。