iOS解檔和歸檔 NSUserDefault

什么是歸檔和解檔?

  1. 歸檔(也稱對(duì)象的序列化) 就是通過某種格式把對(duì)象保存成本地文件,以便以后讀回該對(duì)象的內(nèi)容
  2. 解檔(也稱解歸檔/讀檔) 就是把歸檔的對(duì)象文件讀成原來的對(duì)象的過程

如何歸檔和解檔

1. 系統(tǒng)類的歸檔和解檔

注:1. NSDictionary也可以直接進(jìn)行歸檔和解檔       2. 歸檔的對(duì)象包括這個(gè)對(duì)象中的屬性,它們所屬的類都必須要遵守NSCoding 協(xié)議才能歸檔和解檔

2. 自定義類的歸檔和解檔

如果自定義的類對(duì)象要進(jìn)行歸檔,那么這個(gè)對(duì)象的屬性所屬的類也必須要遵守歸檔協(xié)議NSCoding
必須實(shí)現(xiàn)以下兩個(gè)方法:

屏幕快照 2017-04-19 上午10.09.07.png

3. 歸檔成文件時(shí),需要使用的類與方法

屏幕快照 2017-04-19 上午10.15.50.png

4. 歸檔后的文件讀出為對(duì)象時(shí),需要使用的類與方法

屏幕快照 2017-04-19 上午10.16.16.png

NSUserDefault

生成單例對(duì)象

屏幕快照 2017-04-19 上午10.30.59.png

1.存放類似plist文件中能存的信息:字典,數(shù)組,字符串,布爾數(shù)據(jù),數(shù)字對(duì)象,NSData,NSDate
2.像操作字典一樣進(jìn)行存入和讀出

NSUserDefaults單例以key-value的形式存儲(chǔ)了一系列偏好設(shè)置,key是名稱,value是相應(yīng)的數(shù)據(jù)。存/取數(shù)據(jù)時(shí)可以使用方法objectForKey:和setObject:forKey:來把對(duì)象存儲(chǔ)到相應(yīng)的plist文件中,或者讀取,既然是plist文件,那么對(duì)象的類型則必須是plist文件可以存儲(chǔ)的類型,正如官方文檔中提到的——

  • NSData
  • NSString
  • NSNumber
  • NSDate
  • NSArray
  • NSDictionary
    而如果需要存儲(chǔ)plist文件不支持的類型,比如圖片,可以先將其歸檔為NSData類型,再存入plist文件,需要注意的是,即使對(duì)象是NSArray或NSDictionary,他們存儲(chǔ)的類型也應(yīng)該是以上范圍包括的。
屏幕快照 2017-04-19 上午10.37.18.png
屏幕快照 2017-04-19 上午10.37.29.png
屏幕快照 2017-04-19 上午10.37.48.png
屏幕快照 2017-04-19 上午10.39.39.png

[defaults synchronize];
其中,方法synchronise是為了強(qiáng)制存儲(chǔ),其實(shí)并非必要,因?yàn)檫@個(gè)方法會(huì)在系統(tǒng)中默認(rèn)調(diào)用,但是你確認(rèn)需要馬上就存儲(chǔ),這樣做是可行的。

最后編輯于
?著作權(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>什么是plist文件, plist文件的作用 1、plist文件:property l...
    擋不住的獅子閱讀 2,096評(píng)論 0 1
  • 一、歸檔介紹 1.歸檔是指用某種格式來保存一個(gè)或多個(gè)對(duì)象,以便以后還原這些對(duì)象的過程。歸檔是將數(shù)據(jù)持久化的一種方式...
    lilinjianshu閱讀 945評(píng)論 0 0
  • 歸檔與解檔是iOS中序列化與反序列化的方式,需要實(shí)現(xiàn) encodeWithCoder 和 initWithCode...
    KingWorld閱讀 1,990評(píng)論 0 3
  • 在構(gòu)建應(yīng)用程序時(shí),有一個(gè)重要的問題是如何在每次啟動(dòng)之間持久化數(shù)據(jù),以便重現(xiàn)最后一次關(guān)閉應(yīng)用前的狀態(tài)。在iOS和OS...
    pro648閱讀 14,020評(píng)論 1 27
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽閱讀 10,920評(píng)論 0 11

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