【好程序员笔记分享】——归档
2015-04-18 15:04
148 查看
<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的objective-c笔记,期待与您交流!
在Objective-C中,归档是指用某种格式对一个和多个对象进行保存,以便以后方便使用。归档也称为数据保存。归档的过程一般分两个阶段,一个是对象的写入,另一个是对象的读取。
一·XML属性列表
XML属性列表可以用来将NSData、NSString、NSNumber、NSArray和NSDictionary类中的数据进行保存和读取。
1·使用XML进行数据保存
要将NSData、NSString、NSNumber、NSArray和NSDictionary类中的数据进行保存时,可以使用这些类中的writeToFile()方法,将数据写入文件
[类对象名 writeToFile:文件名称 atomically:YES]
类对象名是指NSData、NSString、NSNumber、NSArray和NSDictionary所创建的对象。调用中设置atomically为YES。这时系统首先将数据写到一个辅助文件中,当确认写成功以后,系统才把文件保存到指定位置。
2·使用XML进行数据读取
通过XML属性列表直接从文件中读数据到NSData、NSString、NSNumber、NSArray和NSDictionary类的对象中。
1)NSArray的读入方法
要将文件中的NSArray的数据从文件中读到NSArray类的对象中,使用的方法是arrayWithContentsOfFile()方法
[NSArray rrayWithContentsOfFile:文件名]
2)NSDtionary的读入方法
当我们要将文件中的NSDictionary的数据从文件中读到NSDictionary类中的对象中,使用的方法是dictionaryWithContentsOfFile()方法
[yNSDtionary rrayWithContentsOfFile:文件名]
3NSDictionary的读入方法
当我们要将文件中的NSString的数据从文件中读到NSString类的对象中,使用的方法是stringWithContentsOfFile()方法。
二·NSKeyedArchiver
当我们要将NSDictionary类中的数据保存在XML属性列表中时,要求数据的键必须是NSString对象,只可以是NSData、NSString、NSNumber、NSArray和NSDictionary中的一个或多个。为了解决这一局限,Objective-C提供了NSKeyedArchive。它可以保存NSData、NSString、NSNumber、NSArray和NSDictionary类和其他类的数据,但NSKeyedArchiver要求每个被保存的值都有一个键。
1·NSKeyedArchive的数据保存
当我们要将NSData、NSString、NSNumber、NSArray和NSDictionary类和其他类中的数据进行保存时,可以使用archiveRootObject()方法
[SKeyedArchive archiveRootObject toFile]
2·NSKeyedArchive的数据读取
要从文件中读数据到NSData、NSString、NSNumber、NSArray和NSDictionary类和其他类的对象中时,可以通过NSKeyedArchive中的读取方法unarchiveObjectWithFile()来读取文件中的数据。使用unarchiveObjectWithFile()
[SKeyedArchive unarchiveRootObject toFile]
三·编码和解码方法
1·编码方法
编码是归档的另一种称呼。对其他类进行归档时,必须知道系统如何对对象中的数据进行编码和解码。对于类进行编码的方法使用encodeWithCoder中的encodeObject()方法。
2·解码方法
当数据进行编码以后还需要进行解码,这时我们采用initWithCoder中的decodeObjectForKey()方法进行解码
四·保存多个对象到一个文件
将Mer类中的对象me1和point类中的对象
p1保存在文件“haha”中,然后将保存在文件中的数据读取。
五·使用归档程序复制对象
可以使用NSData和NSKeyedArchive来对一个对象进行复制。
小结:当进行归档时知道使用哪一种归档方式合适,会使用两种方式对类中的对象进行归档,并将多个对象保存到一个文件中,会对对象进行复制。
在Objective-C中,归档是指用某种格式对一个和多个对象进行保存,以便以后方便使用。归档也称为数据保存。归档的过程一般分两个阶段,一个是对象的写入,另一个是对象的读取。
一·XML属性列表
XML属性列表可以用来将NSData、NSString、NSNumber、NSArray和NSDictionary类中的数据进行保存和读取。
1·使用XML进行数据保存
要将NSData、NSString、NSNumber、NSArray和NSDictionary类中的数据进行保存时,可以使用这些类中的writeToFile()方法,将数据写入文件
[类对象名 writeToFile:文件名称 atomically:YES]
类对象名是指NSData、NSString、NSNumber、NSArray和NSDictionary所创建的对象。调用中设置atomically为YES。这时系统首先将数据写到一个辅助文件中,当确认写成功以后,系统才把文件保存到指定位置。
2·使用XML进行数据读取
通过XML属性列表直接从文件中读数据到NSData、NSString、NSNumber、NSArray和NSDictionary类的对象中。
1)NSArray的读入方法
要将文件中的NSArray的数据从文件中读到NSArray类的对象中,使用的方法是arrayWithContentsOfFile()方法
[NSArray rrayWithContentsOfFile:文件名]
2)NSDtionary的读入方法
当我们要将文件中的NSDictionary的数据从文件中读到NSDictionary类中的对象中,使用的方法是dictionaryWithContentsOfFile()方法
[yNSDtionary rrayWithContentsOfFile:文件名]
3NSDictionary的读入方法
当我们要将文件中的NSString的数据从文件中读到NSString类的对象中,使用的方法是stringWithContentsOfFile()方法。
二·NSKeyedArchiver
当我们要将NSDictionary类中的数据保存在XML属性列表中时,要求数据的键必须是NSString对象,只可以是NSData、NSString、NSNumber、NSArray和NSDictionary中的一个或多个。为了解决这一局限,Objective-C提供了NSKeyedArchive。它可以保存NSData、NSString、NSNumber、NSArray和NSDictionary类和其他类的数据,但NSKeyedArchiver要求每个被保存的值都有一个键。
1·NSKeyedArchive的数据保存
当我们要将NSData、NSString、NSNumber、NSArray和NSDictionary类和其他类中的数据进行保存时,可以使用archiveRootObject()方法
[SKeyedArchive archiveRootObject toFile]
2·NSKeyedArchive的数据读取
要从文件中读数据到NSData、NSString、NSNumber、NSArray和NSDictionary类和其他类的对象中时,可以通过NSKeyedArchive中的读取方法unarchiveObjectWithFile()来读取文件中的数据。使用unarchiveObjectWithFile()
[SKeyedArchive unarchiveRootObject toFile]
三·编码和解码方法
1·编码方法
编码是归档的另一种称呼。对其他类进行归档时,必须知道系统如何对对象中的数据进行编码和解码。对于类进行编码的方法使用encodeWithCoder中的encodeObject()方法。
2·解码方法
当数据进行编码以后还需要进行解码,这时我们采用initWithCoder中的decodeObjectForKey()方法进行解码
四·保存多个对象到一个文件
将Mer类中的对象me1和point类中的对象
p1保存在文件“haha”中,然后将保存在文件中的数据读取。
五·使用归档程序复制对象
可以使用NSData和NSKeyedArchive来对一个对象进行复制。
小结:当进行归档时知道使用哪一种归档方式合适,会使用两种方式对类中的对象进行归档,并将多个对象保存到一个文件中,会对对象进行复制。
相关文章推荐
- 【好程序员笔记分享】——文件和目录处理
- 【好程序员训练营学习笔记分享2】指针(二)
- 【好程序员训练营学习笔记分享3】结构体(一)
- 【好程序员训练营学习笔记分享6】带你真正了解负数补码的计算
- 【好程序员笔记分享】java之面向对象编程
- 【好程序员笔记分享】——编译预处理
- 【好程序员笔记分享】——java中关于异常的知识点
- 【好程序员笔记分享】—— 通过指针遍历一维数组
- 【好程序员笔记分享】—— C语言中的文件包含
- 【好程序员笔记分享】—— 函数结合指针的妙用
- 【好程序员笔记分享】—— C语言中的宏定义
- 【好程序员训练营学习笔记分享7】共用体和枚举类型
- 【好程序员训练营学习笔记分享8】c++ 继承及构造函数
- 【好程序员笔记分享】—— 通过指针遍历字符串中的所有字符
- 【好程序员笔记分享】——分类
- 读王维树老师的笔记&lt;&lt;程序员的12条经营分享&gt;&gt;感
- 【好程序员笔记分享】——面向编程objective基本介绍
- 【好程序员笔记分享】——协议
- 【好程序员训练营学习笔记分享5】结构体(三)
- 【好程序员笔记分享】—— C语言指针的理解