2

在开发我的第一个严肃的 iPhone 应用程序时(意思是我想将它放到 AppStore 上),我需要一种很好的方式来表示我的数据。我(我认为是愚蠢的)决定使用类来表示我的数据,而不是使用核心数据。

我创建了三个类,MMDot、MMShowMovement 和 MMShow。MMShowMovement 在数组中保存了 MMDot 类的实例,因为 MMShow 保存了 MMShowMovement 的实例。听起来是个不错的方法,每个类都有很多与之相关的逻辑,所以我认为类似乎是表示所有这些数据的好方法。

我的问题是,是否有一种简单的方法可以保存这些类的实例,以便在重新打开应用程序后恢复数据?我使用 NSKeyedArchiver 在 OS X 上制作了应用程序,在 iPhone 上会不会类似?重新开始使用 Core Data 会更容易吗(这些对象非常复杂,尤其是具有大约 15 个实例变量的 MMDot,现在我看了一下,可能没那么复杂)?

我在这里真的很茫然。

4

3 回答 3

2

你绝对可以使用 NSKeyedArchiver 来持久化你的对象。我是这两种方法的粉丝,决定主要取决于您的应用程序需求。我认为在 CoreData 中重新建模对象不会有太多工作。在不了解您的应用程序的情况下,我会说如果您使用简单模型进行简单的持久化,您可能不需要 Core Data,如果您有复杂的关系并且将在应用程序会话期间频繁读取/持久化数据 Core Data 可能是方式去。

于 2010-01-04T02:11:14.007 回答
0

如果你有很多对象实例,你可能最好使用 Core Data——它会帮助缓存东西,帮助你查询来获取特定的对象集,等等。如果您要保存少量实例,KeyArchiving 确实会更有用,但也有一些缺点 - 特别是更难从 Unarchived 对象中追踪内存泄漏。

Core Data 也可以为您分页结果,这样您就不会在不需要时获取大型数组的 entre 内容。

于 2010-01-04T03:12:41.013 回答
0

前几天我正在研究序列化我的课程并使用 NSUserDefaults。我只是给对象的所有内部结构一个基于对象的唯一键。似乎对我来说工作得很快。

在这里写了一篇关于它的博客:http: //technolojiadev.blogspot.com/2009/12/serialize-this.html

于 2010-01-05T10:30:44.890 回答