《《iPhone iPad高级编程ch10》.pdf
文本预览下载声明
第 章
10
数 据 存 储
本章内容:
●如何在属性列表(Property List)中保存本地用户输入信息 带格式的:
●如何使用核心数据(Core Data)框架
●如何使用Xcode 数据建模工具
试想一下这种情况:在完成对一个应用程序所有的细节设计之后,您会问:“我怎样在本地存储
信息呢?”
这里想要存储的数据并不是应用程序首选项( 由settings 捆绑包处理首选项),而是指用户输入的
信息。iOS 4 提供了两种十分简洁的方式来自动处理数据存储问题:属性列表和核心数据。
本章使用上述两种数据存储方式创建用于存储名、姓和联系人信息的应用程序。使用不同的数
据存储格式创建相同的应用程序,能够突出说明您可以在自己的应用程序中提供的不同数据存储
技术。
在进行数据存储时到底使用哪种格式,需要根据应用程序需要而定。数据量小,使用XML 属
性列表实现最容易;数据量较大,则使用核心数据解决方案更合适。
需要注意,应用程序的目标是一个移动设备,因此,无法将其设计成一个大型的中央数据仓库。
苹果公司已经提供了多种足以满足数据存储需求的有效方法。对于更大型的存储需求,苹果公司也
提供了MobileMe 作为一种可能的解决方案。
带格式的:
10.110.1 属性列表
属性列表(文件扩展名为.plist)是能够存储层次结构数据的简单XML 格式文件。属性列表的优点
在于,可以使用它以可移植格式创建结构化数据,从而能够与其他平台和应用程序交换数据。
带格式的:
10.1.110.1.1 属性列表的使用
当需要存储少量数据时,例如少于 1MB 的数据,属性列表可以提供高度结构化的解决方案。
但如果数据是二进制形式的,那么并不推荐使用属性列表,因为它们是基于文本的。
iPhone iPad 高级编程
从本章的应用程序中可以看到,您可以定制自己的对象,并将其存储在一个plist 文件中。为了
使类能够顺利地归档和解档,该类必须实现NSCoding 协议并提供以下两个方法:
●initWithCoder: 带格式的:
●encodeWithCoder:
10.1.210.1.2 推荐的数据元素类型
如前所述,并不推荐使用属性列表来存储二进制数据,但推荐使用属性列表来存储以下6 种数
据元素类型:
●NSArray 带格式的:
●NSDictionary
●NSString
●NSData
●NSDate
●NSNumber
如果要存储定制对象,必须实现以下协议和方法来成功地保存和检索相应对象:
●NSCoding 协议 带格式的:
@interface Person : NSObject NSCoding
●initWithCoder 方法和encodeWithCoder 方法: 带格式的:
- (id)initWithCoder:(NSCoder *)coder {
if (self = [super init]) {
[self setLastName
显示全部