2010-08-03 60 views
0

即使数据只是相当短暂的,核心数据仍然是用于iOS的一个很好的选择。即 - 数据在网络范围内一次发送到云中的服务器,然后在移动设备上不再需要。临时数据的核心数据

回答

0

是的,如果可能有大量记录(例如用户在海外,没有数据连接),请使用核心数据。核心数据抽象的意义就在于这一点 - 如果您最多只有10条记录,那么它可能只是使用一个平面文件的数据,或者可能是一个Sqlite数据库(如果超过这个数据的话) - 将问题转移到核心数据,您决定让存储决定苹果的问题,并且免费获得Apple将在未来几年内投入核心数据框架的所有优化。

核心数据很复杂,当你第一次看它时。苹果的API文档并不差,但有几个“陷阱”。如果你已经使用过Entity ORM框架之类的东西,那么拿起来真的很容易。

或者,如果您确信自己只能获得5-10条记录,并且数据符合NSCoder的任何内容,则可以将其归档并保存,然后在您解除归档时启动应用程序。另外,如果是阵列数据,plist非常好。

+0

核心数据不是数据库抽象层。它是一个坚持到磁盘的对象层次结构。将其视为DRM层是大多数人对核心数据造成混淆的原因。另外,核心数据可用于任何数量的对象,1到N具有相同的复杂程度。在任何情况下,它都比平面文件更胜一筹。 – 2010-08-03 18:56:58

+0

马库斯,你绝对正确。这是一个ORM,而不是DRM。 – makdad 2010-08-09 09:21:33

1

您不必使用核心数据来保存数据。

如果您根本不想保留数据,则可以定义永不写入磁盘的内存存储。

核心数据的真正功能是对象图的管理,即它处理对象之间的关系。它的真正优势在于能够自动处理复杂程度为复杂度

这种复杂性可能来自数据对象本身或从它们所需​​的关系到控制器或视图对象。无论哪种方式,Core Data都可以轻松地将所有对象绑定在一起,而无需使用自定义代码。对象最终坚持甚至坚持到底,实际上是次要的。

0

我所采取的方法是将实体插入到NIL上下文中,并在我希望保留它们时提供基类以便插入到有效的上下文中。代码可以在这里找到... Temporary Core Data