首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 5数据存储:核心数据、SQL还是其他选项?

iOS 5数据存储:核心数据、SQL还是其他选项?
EN

Stack Overflow用户
提问于 2012-03-13 12:08:51
回答 2查看 2.5K关注 0票数 0

我正在为iPhone (iOS 5)编写一个应用程序。我要做的是使用从服务器获得的二进制数据创建一个映射。有些问题实际上运作得很好:

  • 我可以连接到服务器,发送请求并从服务器接收二进制数据。
  • 我可以解释这些数据,从它创建对象(多边形和路径),并在视图中绘制它们。

但现在又到了最困难的部分。我创建的地图应该是可缩放的和可移动的。因此,我必须向服务器发送新的请求并重新绘制地图。这也很好,但我现在已经收到的数据需要存储,因为我不应该两次从服务器请求相同的数据(例如,如果我放大后返回)。

最后,我的问题是:存储数据的最佳方法是什么?直到现在,我还在考虑使用CoreData或SQLite。还有更好的解决办法吗?我应该保存哪些数据-二进制数据还是创建的对象?

我希望这是可以理解的,你至少可以帮我解决一个问题.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-13 13:28:45

核心数据是唯一的出路。核心数据不是一个存储系统,是一个对象图和持久化框架,可以用SQlite存储数据。

如果使用核心数据,则可以重构项目并使用managedObjects子类作为模型。

看看核心数据编程指南核心数据与数据库的区别

编辑:

来自核心数据性能

核心数据是一个丰富而复杂的对象图管理框架,能够处理大量的数据。SQLite存储可以扩展到兆字节大小的数据库,其中包含数十亿行/表/列。除非您的实体本身具有非常大的属性(尽管请参阅“大型数据对象(BLOB)”)或大量属性,否则对于一个数据集来说,10,000个对象被认为是相当小的大小。

票数 1
EN

Stack Overflow用户

发布于 2012-03-13 23:34:37

这实际上取决于数据对象的大小和访问它们的方式。如果您的对象很小,可以将它们存储在Core数据中。但是,如果您的地图数据是来自一组URL的图像,我将使用Core来存储到映射图像URL的映射,并使用NSURLConnection来管理对象的缓存。

我建议阅读苹果核心数据编程指南大型数据对象(BLOB),它讨论对象的大小和数量。以下摘录如下:

“小”、“适度”和“大”的确切定义是流动的,取决于应用程序的使用。一个松散的经验法则是,按千字节大小排列的物体是“中等”大小的,而大小顺序是“大”的。 对于大小较小的BLOB(和CLOBs),您应该为数据创建一个单独的实体,并为属性创建一个对一的关系。 但是,如果您能够将BLOB存储为文件系统上的资源,并维护指向这些资源的链接(例如URL或路径),则会更好。然后,您可以在必要时加载BLOB。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9683721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档