0

我正在构建 iOS 应用程序。许多书籍都谈到了使用 Core Data 的力量。到目前为止,我几乎一直在避免使用 Core Data,因为它似乎从未适用于我创建的应用程序类型。我不确定这是否属实,或者我没有意识到这一切。

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

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

那么我读到的关于 Core Data 的所有内容都是这样的:假设你有一个作者,他们写了几本书。作者与书、书与作者之间存在关系。Core Data 允许我对作者进行排队,它允许我访问他的书籍或操作该数据。

在我的示例中 - 创建/访问卡片对象 - 我没有处理作者-书籍类型关系。既然我没有处理这个问题,我是否应该假设 Core Data 不应该/不能在我描述的应用程序中使用?

我必须有像作者这样的关系才能预订使用 Core Data 吗?还是这些示例只是展示了 Core Data 中内置的复杂功能?

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

4

1 回答 1

4

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

即使您只有一个实体(您的卡)。使用核心数据还是可以的。如果关系与您的案件无关,您不必建立关系。在您的特定示例中,您可能希望跟踪所玩的每一场扑克游戏、每个玩家的手牌、发牌。这可能用于赛后分析 - 或查看历史记录,或自动重播游戏。你可以很容易地将所有这些存储在 Core Data 中。

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

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

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

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

于 2013-05-01T05:55:13.130 回答