数据持久化之归档及属性列表
1.文件比较复杂,对象也相对强大的时候使用这个。归档解决了自定义的类的存储问题。
2.原理:将复杂的对象转换为NSData,然后写入到硬盘。为了读取的时候恢复写入数据,需要对数据进行编码和解码
(1)NSCoding(编码和解码)
(2)归档与反归档(写与读)
3.自定义的类接受NSCoding协议,需要实现以下两个方法:-initWithCoder: -encodeWithCoder:
归 档类:NSKeydArchiver 反归档类:NSKeydUnarchiver。在归档和反归档的时候实现协议里面的编码及解码方法。一般的语句是NSKeydArchiver *archiver=[[nskeyedArchiver alloc] initWithWritingWithMutableData:data]; [archiver encodeObject:p1 forKey:@"person1"];和NSKeyedUnarchiver *unarchiver=[[NSKeyedUnarchiver alloc] initForReadingWithData:data]; Person *p1=[unarchiver decodeObjectForKey:@"person1"];
事实上还有一个协议,NSCopying。这个在为以后的使用提供副本的时候使用。
属性列表