13

在过去的两周里,我一直在阅读和学习如何使用以下书籍创建 iPhone 应用程序:iOS 6 开发入门、故事板使用和学习目标C。我一直在浏览在线教程和这些书籍,但无法找到我想要的东西。

我正在创建一个简单的应用程序,它是一个可搜索的动物列表,然后当您单击单个动物时,它会显示有关它的信息(名称、图片、体重和原生位置)。我希望能够通过通用名称或其物种进行搜索,并且用户能够选择动物并阅读有关它的信息。没有添加新动物或编辑列表。接下来我希望能够按大陆排序。因此,例如,第一个场景将动物作为一个单元格,将大陆作为另一个单元格。如果他们点击动物,它会拉出所有动物并有一个 UISearchbar 来搜索所有动物,他们可以继续点击。如果他们单击大陆(澳大利亚),它将仅在该位置填充可搜索列表。

我的问题是:如何创建一个将这些变量链接在一起的数据库,然后能够通过搜索栏(plist、核心数据、sqlite)进行搜索?我应该为学习工具或教程使用什么资源?

4

3 回答 3

13

最佳选择取决于数据的数量和复杂性。如果你只有几百只动物,每只动物有几个属性,那么将所有数据放在一个 plist 中并将所有数据加载到内存中就可以了。

如果您有更多带有大注释和其他属性的数据,那么您可能无法将所有数据加载到内存中。那么使用 SQLite 将是一个更好的选择。

核心数据是另一种选择,但它具有最大的学习曲线,对于如此简单的数据来说可能是矫枉过正。如果您有更多关系,并且您希望跨设备同步用户数据,那么核心数据将是一个不错的选择,因为数据不是只读的。

于 2013-01-20T20:53:08.603 回答
8

你正在阅读所有这些东西是件好事。我将尝试为您创建一个“愚蠢”的答案。

你问数据库。这对您来说意味着我将数据存储在哪里。苹果和大多数技术人员用持久性或我在哪里持久化数据来谈论这个问题。

三种常用的(但我确信不是唯一的)存储方法是:

(1) 在称为 plist 文件
的文本文件中 (2) 在 xml 格式的文本文件中和
(3) 在 sqlite 文件或数据库文件中

我如何访问这些数据?

然后你会听到 CoreData,CoreData 是由 Apple 引入的,它可以更容易地访问你存储的数据,也可以帮助小型设备处理大量数据。在没有 coredata 的情况下访问 Sqlite 数据库需要一些工作,但是由于 CoreData,它们使这变得更容易。

至于 xml 和 plist,可以通过简单地将文件读入数组或字典来访问它们,然后像​​往常一样从这些对象中搜索或显示数据。

(关于 sqlite/core data 理念的一件事是,在设置 CoreData 时,您可以设置 sqlite 数据库,也可以是 xml 格式。)

一旦你知道了这两件事,你就可以根据你的目的需要混合和匹配。如果您有大量数据并使用它做很多事情,那么具有 CoreData 访问权限的 sqilte 文件将是一个不错的选择。如果是非常少量的信息,那么您可以使用简单的 plist 文件并使用 Array 或 Dictionary 对象来获取信息,使用它然后将其再次存储在文件中。

在您的情况下,听起来确实像一个简单的 plist 会起作用。

于 2013-01-21T08:21:30.280 回答
3

Core Data 通常被视为首选的 iOS 数据库技术,如果您想熟悉 iOS 中的数据库,您可能应该从那里开始。使用您最喜欢的搜索引擎并查找“核心数据教程”。Ray Wenderlich经常在他的教程中做得很好,您绝对应该查看 Apple 链接(在http://developer.apple.com上找到的视频和各种“入门”文档)。在考虑在 Stack Overflow 上发布后续问题之前,请先阅读一两个教程。

于 2013-01-20T20:04:47.560 回答