Core Data Tutorial for iOS翻译

来源:互联网 发布:恋爱试用期知乎 编辑:程序博客网 时间:2024/04/16 14:54

https://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html


Core Data 教程

简介

CD是一个架构驱动对象,图形管理和持久性框架。就是说,CD帮助你节约模型对象到一个文件然后再取回它。(基于模型-视图-控制器设计模型)这和归档类似,但CD提供更多功能,如下:
1.提供一个基础为管理你模型对象的任何改变。这为你撤销和重做提供自动支持,保持不同对象间的互相关系。
2.允许你在任何时间保存模型对象的一个子集。保存记忆在ios中是至关重要的。
3.使用一个架构去描述模型对象。你定义你模型集的准则-包括他们之间的关系-基于GUI。这提供一个基本功能“自由的”,包括设定默认值和属性值的变化。
4.允许你独立控制对象。这会非常有用,比如,允许使用者编辑一个视图而不影响展现在另一个视图的数据。
5.为数据存储版本和迁移提供基础。帮助你轻松升级用户的一个旧的版本到现在的版本。

CD在iOS3.0及以后的版本可行
1.The fundamental design patterns and techniques that underlie Core Data
2.The basics of using the Xcode data modeling tool
3.How to create, update, and delete objects managed by Core Data, and how to commit changes to a data store

教程目录

“Starting Out”
“The Table View Controller”
“Managed Object and Model”
“Adding Events”
“Fetching Events”
“Deleting Events”
“Next Steps”

Starting Out

这章主要描述你要创建的应用,然后创建项目。
教你如何使用CD框架
主要目的不是创建一个垃圾应用,而是阐述基本的类,工具和技术,你将在使用CD项目中用到。它并没有深度阐述所有的特征,但它提供了其他相关文章供你深度理解CD。
为了增加点乐趣,教程同时也利用了Core Location框架。它是一个线性对象,对于这个项目你不需要理解它的细节。
你创建的应用很简单,让你随时记录位置作为一个“Event”,用table view展现时间,经纬度。它有add按钮用来增加新应用,一个edit按钮允许你从列表删除事件。
在这个教程,使用CD主要展现Event对象和存储文件,为了在应用打开时呈现。

create the project
创建工程
注意勾选CD

Understanding a Core Data–Based Project
和许多其他支持文件一起提供给你:
1.一个应用委托类
2.一个MainWindow(.xib)文件
3.一个CD模型
尽管委托类是新的。模型文件稍后记叙。它包括三个属性和两个方法。

@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (NSURL *)applicationDocumentsDirectory;
- (void)saveContext;
和名字暗示一样,applicationDocumentsDirectory方法返回应用文件目录的URL,即应用文件数据的位置。属性提供CD stack的接口,saveContext保存模型对象文件的改动。

The Core Data Stack
stack(堆)用于描述一个CD框架将保存的数据转换为持久性数据存储-你存储的文件。概念上说,永久存储就像一个数据库,有列表和记录。(一种存储形式是SQLite,但是存储不一定要是一个实际的数据库)
Figure 1-1 shows the simplest—and most common—configuration of the stack.
你工作直接面对的对象是managed object context和它包括的managed objects。

Managed Objects and the Managed Object Context
Managed Objects是NSManagedObject的子类。概念上说,它是对象呈现在数据库的列表,所以它是一个模型对象,被CD管理。它展现你应用的数据-比如一个人力资源的应用中的部门和雇员。managed object永远和managed object context关联。
The managed object context 是一个NSManagedObjectContext的实例。context展现一个单一对象空间。它主要负责管理收集managed objects。context在你的应用中是一个重要对象,负责管理的生命周期,关系维持和撤销。
当你创建一个新的管理对象,你插入一个context。你获取数据库中的内容作为一个管理对象。任何你做的改动都会在内存中保存并在保存context时真正存储。

The Managed Object Model
是NSManagedObjectModel的实例。是来描述你数据库的框架对象,同时是你应用管理对象。CD使用模型去关联你应用的managed objects和数据库的表单。注意如果你改变应用的框架,CD不能用当前的模型去读取存储的数据了。

Persistent Store Coordinator
Persistent Store Coordinator在CD管理数据中起重要的角色。然而,在你使用框架时,你不经常直接干涉coordinator。这部分表述持久存储协调器。
它是 NSPersistentStoreCoordinator的实例。
在iOS应用,ni'tong'c你通常只有一个存储,但是在复杂的应用里,可能有很多,每个有不同的实例。Persistent Store Coordinator的角色是去管理这些数据然后把它给managed object context。当你得到这些数据,CD重新获得他们。
就是说你有很多managed object context 连接到一个Persistent Store Coordinator来控制他们。

原创粉丝点击