在开发我的第一个严肃的iPhone应用程序(这意味着我想在AppStore上将其删除),我需要一种很好的方法来表示我的数据。我没有使用核心数据,而是(我认为愚蠢的)决定使用类代表我的数据。

我创建了三个类:MMDOT,MMShowMovement和Mmshow。 MMShowMovement在MMShow中包含MMShowMovement的实例,将MMDOT类的实例包含在数组中。听起来像是一种不错的方法,每个课程都有很多逻辑,因此我认为课程似乎是代表所有这些数据的好方法。

我的问题是,是否有一种简单的方法来保存这些类的实例,以便在重新打开应用程序后可以还原数据?我已经使用nskeyedarachiver在OS X上进行了应用程序,在iPhone上是否相似?再次使用核心数据重新开始使用(这些对象非常复杂,尤其是大约15个实例变量的MMDOT,现在我看过它,也许不是那么复杂)?

我真的很茫然。

有帮助吗?

解决方案

您绝对可以使用nskeyedarachiver坚持对象。我是两种方法的粉丝,决定主要在于您的应用程序需求。我认为在Coredata中重新建模您的对象不会做很多工作。在不了解您的应用程序的情况下,我会说如果您使用简单模型进行简单持久性,您可能不需要核心数据,如果您具有复杂的关系,并且在应用程序会话核心数据中经常阅读/持久数据可能是一种方式去。

其他提示

如果您有很多对象实例,则最好使用核心数据 - 它将帮助缓存内容,帮助您进行查询以获取特定的对象集,依此类推。如果您节省了少数实例,但是要有一些缺点,那么KeyArching确实更有用 - 特别是很难跟踪来自未统计的对象的内存泄漏。

核心数据也可以为您提供结果,因此,如果您不需要,则不会在大型数组的群体中获取。

前几天,我正在考虑序列化课程,并使用NsuserDefaults。我只是根据对象将所有对象的内部列出一个唯一的键。似乎对我来说很快。

在这里写了一个博客: http://technolojiadev.blogspot.com/2009/12/serialize-this.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top