美文网首页
将接收到的JSON数据保存到本地NSUserDefault

将接收到的JSON数据保存到本地NSUserDefault

作者: NapoleonY | 来源:发表于2018-04-24 19:14 被阅读151次

需求

  1. iOS app接收到JSON数据,并保存到NSUserDefault中。
  2. JSON中部分字段可能为空(null)

分析

  1. 由于JSON中部分字段为空,直接转换为NSDictionary后,存入NSUserDefault会报错。因为值为null的字段不能无法存入NSUserDefault。NSUserDefault只能存入特定类型的对象:NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary。如果想要存储其它类型,需打包成NSData类型。
    备注:Swift 中String、Array、 Dictionary等也是可以存入USerDefault的,这些类型等价于Objective C 中对应的类

方法一

  1. 新建一个基于JSON的model类
  2. 实现NSCoding协议
  3. 将JSON转换为model实例,值为null的转换为0或""等
  4. 将model实例打包成NSData数据
  5. 保存到NSUserdefault中
    具体可参考NSUserDefault用法中“自定义Model打包NSData类型”部分

方法二

  1. 新建一个基于JSON的model类
  2. 将JSON转换为model实例,值为null的转换为0或""等,具体可借助开源代码YYModel等转换
  3. 将model实例转换为NSDictionary,仍然可以通过开源代码YYModel等转换
  4. 将转换后的NSDictionary存入到NSUserdefault中

参考

  1. NSUserDefault用法
  2. YYModel

相关文章

网友评论

      本文标题:将接收到的JSON数据保存到本地NSUserDefault

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