XML归档:用某种格式来保存一个或者多个对象,将对象保存到一个文件中,如果要调用文档内容,需使用跟保存格式相同的格式读取。属性列表归档只针对于Foundation对象,字典中的键必须全是NSString对象。字典中的值可以是NSString、NSArray、NSDictionary、NSData、NSNumber对象
写入文件:writeToFile:@“123.plist” atomically:YES (atomically是希望首先将文件写入临时备份文件中,写入成功后,将把最终数据转移到123.plist的制定文件中,如果保存的文件是类似于docu/ppt/test/123.plist 需要手动创建相应的文件夹,系统只能自动创建最终文件。这项安全措施使得文件在执行操作的过程中崩溃时免受破坏。
写入文件:archiveRootObject:toFile
NSKeyedArchiver归档:可将各种类型的对象存储到文件中,使用NSArchiver类创建连续的归档,连续的归档需要完全按照写入时的顺序读取归档中的数据。带键的档案中,每个归档字段都有一个名称。归档某个对象时,会为它提供一个键,从归档中检索该对象时,需根据键来检索,这样可以按照任意的顺序将对象写入归档并进行检索。iPhone SDK中没有提供NSArchiver,如果想使用归档功能,则必须使用NSKeyedArchiver
————通常自定义的类不能直接归档。若要归档必须是该类遵守协议,在该类中添加encodeWithCoder:方法和initWithCoder:方法,以实现归档对象和恢复对象
编码和解码方法:编码方法一般应该指定如何归档,想要保存的对象中的每个实例变量
对于Objective-c: encodeObject:forKey: 编码 decodeObject:forKey:解码
对于int对象: encodeInt:forKey: 编码 decodeInt:forKey:解码
对于float: encodeFloat:forKey: 编码 decodeFloat:forKey:解码
使用NSData创建自定义档案
有时可能不希望使用archiveRootObject:toFile:方法将对象直接写入文件,而是临时放到有NSData对象创建的临时存储空间中
NSData对象用来保存一块内存空间作为临时存储数据的空间 [dataArea=NSData data];