ios面试题精选

NSCoding

2016-10-21  本文已影响17人  秋燕归

NSCoding是一个简单的协议,有两个方法:-initWithCoder:和encodeWithCoder:。遵循NSCoding协议的类可以被序列化和反序列化,这样可以归档到磁盘上或分发到网络上。

举个例子:

Books.m

以上Books类约定了NSCoding协议,那么我们就可以通过NSKeyedArchiver或NSKeyedUnarchiver把对象读取/写入磁盘。

如下:

Archiving

[NSKeyedArchiver archiveRootObject:bookstoFile:@"/path/to/archive"];

Unarchiving

[NSKeyedUnarchiver unarchiveObjectWithFile:@"/path/to/archive"];

也可以转成NSData以便存储,如下:

Archiving

NSData*data=[NSKeyedArchiver archivedDataWithRootObject:books];

[[NSUserDefaults standardUserDefaults] setObject:dataforKey:@"books"];

Unarchiving

NSData*data=[[NSUserDefaults standardUserDefaults]objectForKey:@"books"];

NSArray*books=[NSKeyedUnarchiver unarchiveObjectWithData:data];

上一篇 下一篇

猜你喜欢

热点阅读