NSCoding

作者: 秋燕归 | 来源:发表于2016-10-21 21:00 被阅读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];

相关文章

  • 知识小结三:NSCoding理解

    iOS - NSCoding协议的理解 NSCoding协议 一、NSCoding理解 NSCoder的具体子类使...

  • NSCoding

    NSCoding 定义: 一般情况下,UIView ,UIViewController ,都遵循了NSCoding...

  • NSCoding

    NSCoding是一个简单的协议,有两个方法:-initWithCoder:和encodeWithCoder:。遵...

  • NSCoding

    使用场景: 将对象存储成文件,当需要的时候随时可以调用 要求: 遵守NSCoding协议 NSCoding相关的类...

  • UITableView方法总结

    UITableView:UIScrollView

  • IOS本地存储的四种方式

    概要 一、NSKeyedArchiver归档(NSCoding)序列化 需要归档解档的类需要遵守NSCoding协...

  • 从0到1造一个Model吧(三)

    接上一篇。 这一篇给model加上NSCoding和description。 NSCoding 为了让model支...

  • 2021-08-25

    iOS swift SDK详解之NSCoding协议 详解:NSCoding是对iOS中的Model类进行编码和解...

  • kkbox-ios-dev笔记(八) - (终)

    实现NSCoding NSCoding是一个协议,只有两个方法。 encodeWithCoder:将对象通过NSC...

  •   UIview 遵循的代理属性

    UiView的一些代理 一. 我们会在以下这些场合用到NSCoding: 1. XIB/Sto...

网友评论

    本文标题:NSCoding

    本文链接:https://www.haomeiwen.com/subject/ajucuttx.html