0

我已经开发了很多本地应用程序,但是这是我第一次引入网络(更具体地说是发布到数据库并从数据库中读取)。我从数据库中接收到一个 JSON 对象,但我目前正在使用数组和字典。这些对象之间确实存在关系,我想知道 CoreData 是否是要走的路。如果是这样,我是否只是复制我希望在应用程序中查看的部分数据库并将其存储在我的 CoreData 模型中?有没有这方面的教程?

另外,顺便说一句,我还包含了 Facebook 集成,我通过它下载了用户的朋友列表。CoreData 也适合存储此类信息吗?还是我会更好地坚持字典?

提前致谢。

4

1 回答 1

1

根据我的经验(其他人可能会说不同的话)Core Data 是正确的选择,但它的采用可能取决于您可以投入的时间。起初可能非常复杂,但我认为您可以利用在其他项目中应用这些知识。

那里有一些关于核心数据的教程或书籍。

首先,我建议阅读core-data-on-ios-5-tutorial-getting-started。我认为在该站点中还有其他教程。然后,您可以尝试阅读我前段时间写的关于核心数据的文章:Mapping Business Objects with Core Data in iOS。Apple doc 也是您的朋友。因此,请阅读《核心数据编程指南简介》以了解正在发生的细节。

如果是这样,我是否只是复制我希望在应用程序中查看的部分数据库并将其存储在我的 CoreData 模型中?

是的,只是一部分。您可以创建一个最小模型,其中包含您需要在设备中拥有的关键部件。我想强调的是,在处理 Core Data 时,您不需要关心规范化概念。是的,你可以,但是在 CD 中你处理对象,重要的是要注意内存消耗(框架可以帮助你)和性能。

CoreData 也适合存储此类信息吗?还是我会更好地坚持字典?

使用 CD,您可以利用NSFetchedResultsController. 对象经过优化以使用NSFetchedResultsController表,它也用于批量显示数据。通过这个组件,您可以处理很多元素(比如 Facebook 中的朋友),而不会导致内存过载。请参阅core-data-tutorial-how-to-use-nsfetchedresultscontroller

如果你想知道别的,请告诉我。

希望有帮助。

于 2012-06-12T18:17:46.420 回答