將接收到的JSON數(shù)據(jù)保存到本地NSUserDefault

需求

  1. iOS app接收到JSON數(shù)據(jù),并保存到NSUserDefault中。
  2. JSON中部分字段可能為空(null)

分析

  1. 由于JSON中部分字段為空,直接轉(zhuǎn)換為NSDictionary后,存入NSUserDefault會(huì)報(bào)錯(cuò)。因?yàn)橹禐閚ull的字段不能無法存入NSUserDefault。NSUserDefault只能存入特定類型的對(duì)象:NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary。如果想要存儲(chǔ)其它類型,需打包成NSData類型。
    備注:Swift 中String、Array、 Dictionary等也是可以存入U(xiǎn)SerDefault的,這些類型等價(jià)于Objective C 中對(duì)應(yīng)的類

方法一

  1. 新建一個(gè)基于JSON的model類
  2. 實(shí)現(xiàn)NSCoding協(xié)議
  3. 將JSON轉(zhuǎn)換為model實(shí)例,值為null的轉(zhuǎn)換為0或""等
  4. 將model實(shí)例打包成NSData數(shù)據(jù)
  5. 保存到NSUserdefault中
    具體可參考NSUserDefault用法中“自定義Model打包NSData類型”部分

方法二

  1. 新建一個(gè)基于JSON的model類
  2. 將JSON轉(zhuǎn)換為model實(shí)例,值為null的轉(zhuǎn)換為0或""等,具體可借助開源代碼YYModel等轉(zhuǎn)換
  3. 將model實(shí)例轉(zhuǎn)換為NSDictionary,仍然可以通過開源代碼YYModel等轉(zhuǎn)換
  4. 將轉(zhuǎn)換后的NSDictionary存入到NSUserdefault中

參考

  1. NSUserDefault用法
  2. YYModel
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,286評(píng)論 8 265
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 概述 ? iOS源碼解析—YYModel(YYClassInfo)分析了如何根據(jù)OC的Class對(duì)象構(gòu)建...
    egoCogito_panf閱讀 11,837評(píng)論 4 32
  • 商品的價(jià)格其實(shí)是市場共識(shí),股票作為一種商品也是一樣的。在中國股市,決定股票價(jià)格的都是什么人?散戶呀,散戶懂什么公司...
    青竹子678閱讀 213評(píng)論 1 0
  • 1、你認(rèn)為電商運(yùn)營成本包括哪些?在電子商務(wù)實(shí)際運(yùn)營中你會(huì)發(fā)現(xiàn)哪些利用價(jià)格去吸引消費(fèi)者的方法? 我認(rèn)為運(yùn)營成本包括:...
    1b97bde730b9閱讀 330評(píng)論 0 0

友情鏈接更多精彩內(nèi)容