核心数据是否应仅用于特定类型的数据模型,还是可以始终使用?

时间:2013-05-01 02:35:20

标签: model-view-controller core-data model

我正在构建iOS应用。许多书谈论使用核心数据的力量。到目前为止,我几乎一直在避免使用Core Data,因为它似乎永远不适用于我创建的应用程序类型。我不确定这是真的还是我没有意识到这一切。

例如,我为iPad制作了一个视频扑克应用程序。我根据MVC范例分离了应用程序。我的模型是我创建卡片的地方。由于我正在跟踪正在播放和丢弃的卡片,因此我将我的模型设置为单身,我的视图控制器会询问模型所需的卡片。

然后我想,也许我可以重建这种类型的应用程序,以更好地了解Core Data的工作原理。我想的不是单件模型,我的View Controller会引用Core Data模型。我知道Core Data是MVC设计模式的模型。核心数据存储对象。我的卡片是物品。这似乎适用。我应该能够使用Core Data重建我的应用程序。对?

然后我读到的关于核心数据的所有内容都是这样的:假设你有一个作者并且他们已经写了几本书。作者与书籍和书籍之间存在着一种关系。核心数据允许我对作者进行排队,这将允许我访问他的书籍或操纵该数据。

在我的例子中 - 创建/访问卡片对象 - 我没有处理作者 - 书籍类型的关系。由于我没有处理这个问题,我是否应该假设核心数据不应该/不能用于我正在描述的应用程序中?

我是否必须像作者一样预订使用核心数据的关系?或者这些例子只是展示了Core Data内置的复杂功能?

我并不急于使用Core Data重建我的应用程序,它可以正常工作。我只是在寻找一些方向,以便更好地了解何时以及为什么我需要/需要使用Core Data。

1 个答案:

答案 0 :(得分:4)

如果需要保留数据,则可以使用核心数据。它是一个现成的持久性和对象管理框架。您无需担心数据存储或检索的详细信息。

即使您只有一个实体(您的卡)。使用核心数据仍然很好。如果它们与您的案例无关,则无需建立关系。在您的特定示例中,您可能想要跟踪每个玩家玩过的牌,每个玩家拥有的牌,牌。这可能用于游戏后分析 - 或查看历史记录,或自动重播游戏。您可以非常轻松地将所有这些存储在Core Data中。

我使用核心数据的一些例子:

我有一个应用程序Flickr Gallery PRO。我会查看所有照片的历史记录,并查看所有照片流。我使用Core Data存储这些。如果我没有使用Core Data,我将不得不推出自己的持久性机制。

我的另一个应用程序,Stats for Flurry,我再次使用Core Data。这里的目的是离线使用并与Flurry服务器同步。我称flurry服务器下载数据,并将其持久保存到Core Data。

我曾为大型报纸开发过应用程序。我们再次使用Core Data,以便应用程序同步到服务器,下载最新消息并将其存储在Core Data中,以便用户可以在以后离线阅读。