使用核心数据存储 - 基于导航和&基于窗口的应用程序 - iPhone

时间:2009-08-27 21:44:37

标签: iphone xcode uinavigationcontroller

在XCode中创建项目的选项太多了,

但是当我们选择基于导航的应用程序/基于窗口的应用程序

我们可以看到额外的选项 - 使用核心数据存储。

我需要有关它的简要细节。

有什么新内容?

2 个答案:

答案 0 :(得分:35)

详细说明Jergason所写的内容。核心数据是一种对象关系映射(ORM),类似于Java世界中的Hibernate。它抽象了将数据(例如SQL或.plist文件)存储在代码之外的实际机制。您的代码只需要处理一致的面向对象框架来获取对象,更新它们并持久化它们。 Core Data支持某种级别的ACID事务,但不支持2阶段提交。在iPhone上,Core Data的默认设置使用ORM层包装sqlite数据库。

使用Core Data的一个有趣的附带好处是可视化设计数据模型和生成模型类的工具。如果你有一个大型模型,这可以节省很多时间在手编码模型类。

Core Data的另一个有趣的好处是它能够将数据库从一个模型版本迁移到另一个模型版本。这在iPhone世界中非常重要,因为您可能希望将数据模型从一个版本的应用程序修改为下一个版本。 Core Data提供了一种非常简单的方法,可以将持久化数据从旧模型迁移到新模型,而无需编写大量迁移代码。您只需定义一个迁移地图,并向您的应用代理添加“几行”代码,然后为您转换内容。

iPhone上的核心数据专为移动环境而设计。如果将表中的所有行提取到数组中,它实际上并不会将所有内容都提取到内存中。它创建了Apple所谓的错误数组,它只是一个看起来像NSArray的对象。当您访问数组的各种元素时,Core Data会在使用时获取这些实体(行),而不是查询。它可以节省内存并帮助您的应用程序更快地运行。

总而言之,它是一个非常全功能的ORM层,不像Hibernate那样丰富,但足以满足这种环境。

答案 1 :(得分:17)

核心数据本质上是一种可视化构建模型的方法,一种用于模型的Interface Builder。您可以创建表示模型类的实体,并定义它们之间的关系。您可以通过拖放来直观地创建它们,而不必编写具有地址类实例的Person类。还有很多东西,但这是我认为很酷的一个主要特征。

另见 this Apple文档。