iPhone应用程序的数据存储

时间:2011-11-16 18:28:56

标签: ios objective-c iphone storage

我正在编写一个包含校园内所有建筑物和桌面视图的应用程序。当您单击建筑物时,它将检索其上的信息,例如经度,纬度,建筑物名称及其图像。

我的问题是您认为存储此数据的最佳方式是什么?我应该使用sqlite3数据库还是核心数据? Sqlite3就是我现在所倾向的,我对SQL有点熟悉。任何建议将不胜感激。

2 个答案:

答案 0 :(得分:5)

CoreData使用SQlite。如果你正在学习,这将是你最好的选择,因为所有与苹果相关的东西(iphone,ipad,ipod touch和MacOS X都支持它)。

有很多关于如何使用CoreData的书籍和示例。此外,CoreData可以很好地处理数据库的更新。

要使用CoreData,您不需要编写任何SQL行。这一切都是由API完成的。

答案 1 :(得分:-2)

好的,所以我想出了一个使用Core Data做到这一点的好方法。我使用实体及其属性创建了Core Data模型。实体及其属性对应于表及其列。我跑了它,它创建了一个空的sqlite文件。您可以在以下位置找到此文件:

  

/ Users / [name] / Library / Application Support / iPhone Simulator / 5.0 / Applications / [some long HEX number] / Documents

从那里,您可以通过键入以下命令打开并查看sqlite文件及其内容:

> sqlite3 [name of file].sqlite
> .schema

.schema显示表和列。您会注意到,当Core Data创建一个sqlite数据库时,它将调用表Z [entity]和列Z [attribute],其中entity是您实体的名称,attribute是您的属性的名称。因此,表和所有属性都在它之前有一个Z.

然后我编写了一个脚本来收集所有信息并将其存储在这个数据库中,然后我将它放回到我发现它的目录中并且它有效!希望这可以帮助遇到同样问题的人。

我绝对建议使用Core Data而不是SQLite,核心数据更容易使用。

更新:我应该提一下,我用它来初始化数据库,并在初始化后不对它进行任何更改。