IOS开发之 归档总结

只针对于Foundation对象的归档:

使用XML属性列表归档,结果物为XML文件,属性列表归档只针对于Foundation对象,若数组或字典集合中有某些自定义的类的对象,则不能用这个方法归档。

归档使用的方法:

使用Foundation类中自带的方法:- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

相对应的解析方法:-(id)initWithContentOfFile:(NSString *)filePath;

这两个方法是相对应的。用自带的方法归档,就必须用自带的方法读取文件。如果用别的方法读取会出现异常。

 

归档自定义类的方法:

用NSArchiver和NSKeyedArchiver归档。

在IOS SDK中没有NSArchiver(NSArchiver 是mac os SDK中的方法)。只能用 NSKeyedArchiver 和 NSKeyedUnArchiver进行归档和解析操作。

NSArray *array=@[@"1",@"2",@"3"];

[NSKeyedArchiver archiveRootObject:array toFile:@"arrTemp"]; //归档操作

NSArray *arr=[NSKeyedUnarchiver unarchiveObjectWithFile:@"arrTemp"]; //读取文件操作

 

自定义的类用NSKeyedArchiver进行带键值对的归档时要遵循<NSCoding>协议方法并实现。

//进行归档的编码方式

- (void)encodeWithCoder:(NSCoder *)aCoder

{

    [aCoder encodeObject:bookName forKey:@"name"];

}

 

 //读取文件进行解码的方式

- (id)initWithCoder:(NSCoder *)aDecoder

{

   self.bookName = [aDecoder decodeObjectForKey:@"name"];

 return  self;

}

 

posted @ 2014-09-16 14:55  蓝清凡  阅读(338)  评论(0)    收藏  举报
编辑推荐:
· C# 代码如何影响 CPU 缓存速度?
· 智能桌面机器人:使用 .NET 为树莓派开发 Wifi 配网功能
· C# 模式匹配全解:原理、用法与易错点
· 记一次SSD性能瓶颈排查之路——寿命与性能之间的取舍
· 理解 .NET 结构体字段的内存布局
阅读排行:
· 【故障公告】6月9日 17:24~17:34 再次遭遇攻击(晚上遭遇更疯狂的攻击)
· .net入行第4年
· 3 个超火的开源项目「GitHub 热点速览」
· 上周热点回顾(6.2-6.8)
· [原创]《C#高级GDI+实战:从零开发一个流程图》第01章:有什么用、有什么效果?
点击右上角即可分享
微信分享提示