美文网首页2016技术笔记
2016笔记——NSUserDefault

2016笔记——NSUserDefault

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 14:07 被阅读3次

NSUserDefault是接触比较早的数据持久化方法了,简单易用,但是之前一直没有想过该怎么样才能存储自定义的对象。

今天试了一下:

把一个自定义的Person对象存到数组中,然后把数组作为一个Value,存到本地。想法是好的,但是事实就是很残忍了。。看一下实现和效果:

屏幕快照 2016-04-18 17.44.42.png

效果:

屏幕快照 2016-04-18 17.44.19.png

给我的就一个大大的崩溃。。

问题出现了不能不处理,最终找到了方案:

1、Person签订NSCoding协议

屏幕快照 2016-04-18 17.47.49.png

2、实现NSCoding的方法:

屏幕快照 2016-04-18 17.49.22.png

3、初始化对象,将对象编码,然后将数据流存储到NSUserDefault中。

屏幕快照 2016-04-18 17.50.38.png

4、读取数据:

屏幕快照 2016-04-18 17.51.20.png

效果:

屏幕快照 2016-04-18 17.52.08.png

分析:

当调用[NSkeyedArchiver archivedDataWithRootObject:person]方法时,就会触发Person类中的NSCoding协议方法 - (void)encodeWithCoder:(NSCoder*)aCoder方法,将对象编码为数据流。

当调用[NSKeyedUnarchiver unarchiveObjectWithData:data]方法时,就会触发Person类中的NSCoding协议方法 - (id)initWithCoder:(NSCoder*)aDecoder方法,将数据流转为对象。

NSCoding是一个你需要在数据类上要实现的协议以支持数据类和数据流之间的编码和解码。

加油~~

相关文章

  • 2016笔记——NSUserDefault

    NSUserDefault是接触比较早的数据持久化方法了,简单易用,但是之前一直没有想过该怎么样才能存储自定义的对...

  • NSUserdefault读书笔记

    作用用来存储首选项的。本来首选项是存在磁盘上的,NSUserdefault相当于提供了一个缓存,不用每次都写文件。...

  • NSUserDefault

    代码段一 此时打印结果:Jim 代码段二 此时打印结果:lucy注释代码段二,重新执行代码段一,发现打印结果仍旧是...

  • NSUserDefault

    存:[[NSUserDefaults standardUserDefaults] setObject:UIImag...

  • NSUserDefault

    NSUserDefaults 使用 NSUserDefaults是什么,有什么用处 对于应用来说,每个用户都有自己...

  • NSUserDefault

    1.NSUserDefaults可以直接存储的类型 2.使用 NSUserDefaults 存储自定义对象 参考链...

  • NSUserDefault

    NSUserDefaults * settings = [NSUserDefaults standardUserD...

  • NSUserDefault

    简介 它是单例的,并且是线程安全的,是以键值对的形式保存在沙盒中,最下面还是用plist文件进行保存。支持存储的数...

  • iOS NSUserDefaults 存储(二)

    单个删除NSUserDefault保存的数据 删除NSUserDefault保存的所有数据 我们先要取到plist...

  • iOS配置设置NSUserDefaults--文件管理三

    1、NSUserDefault的使用: 作用:NSUserDefault类提供了一个与默认系统进行交互的编程接口。...

网友评论

    本文标题:2016笔记——NSUserDefault

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