ios應用數(shù)據(jù)儲存放式(歸檔)

一 . 簡單說明

在使用plist進行數(shù)據(jù)的存儲和讀取,只適用系統(tǒng)自帶的一些常用類型才能用,且必須先獲取路勁相對麻煩.?

偏好設(shè)置(將所有的東西都保存在同一個文件夾下面,且主要用于存儲應用的設(shè)置信息)

歸檔:因為前兩者都有一個致命的缺陷,只能存儲常用的類型.歸檔可以實現(xiàn)把自定義的對象存放在文件夾中.

歸檔的方式就是將數(shù)據(jù)通過密文的方式存儲,或者說可以通過二進制進行存儲.

如果對象是NSString,NSDictionary,NSArray,NSData,NSNuber等類型,就可以直接使用NSKeyedArchiver進行歸檔和恢復.

然而并不是所有的對象都可以直接使用這種方法進行歸檔,只用遵循了NSCoding協(xié)議的對象才可以.

歸檔的數(shù)據(jù)依然也是存在Documents的文件夾下面.并且plist文件也是存在Doucuments文件夾下面,由此可見Doucments問價存儲著相對重要的文件.

歸檔的缺點:歸檔的形式來存儲數(shù)據(jù),只能一次性歸檔保存以及一次性解壓.所以只能針對小數(shù)量數(shù)據(jù),而且對數(shù)據(jù)操作比較笨拙,如果想改動數(shù)據(jù)的某一部分,還需要解壓整個數(shù)據(jù)或者歸檔整個數(shù)據(jù).

二. 使用archiveRootObject 進行簡單的歸檔

使用NSKeyedAricchiver進行歸檔,NSKeyedUnarchiver進行解檔,這種方式會在寫入,讀出數(shù)據(jù)之前對數(shù)據(jù)進行序列化,反序列化操作.

控制臺上顯示:


這種歸檔的方式存在一個缺點,就是只能把一個對象歸檔進一個文件中,不能對多個對象進行歸檔.

三.對多個對象的歸檔.

同樣是使用NSKeyedArchiver進行歸檔,不同的是同時歸檔多個對象.



可以看出對多個對象進行歸檔還是很方便的,現(xiàn)在我就需要考慮自定義類型的數(shù)據(jù)怎么存儲.

四 對自定義對象進行歸檔

==============創(chuàng)建一個遵守 NSCoding 協(xié)議的類 ================= ??


=========創(chuàng)建一個導入了 自定義Model類的控制器 ViewController =========





自定義對象歸檔/解檔總結(jié):?

1.如果要存儲自定義對象一定要用“歸檔/解檔”的操作轴总;

?2.plist.偏好設(shè)置都不能用來存儲自定義的對象录豺;?

3.自定義對象歸檔/解檔的時候一定要遵守的協(xié)議菜秦;

?4.只要解析文件都會調(diào)用initWithCoder:的方法晰房;?

?5.在解檔屬性的時候濒旦,記得給屬性賦值!!!!?

6.為什么要遵守協(xié)議? 為了告訴系統(tǒng)歸檔/解檔哪些屬性勇垛,告訴系統(tǒng)如何進行歸檔解檔胜卤。




注意:

如果父類也遵守了NSCoding協(xié)議丧靡,請注意:

a. 應該在encodeWithCoder:方法中加上一句:[super encodeWithCode:encode];確保繼承的實例變量也能被編碼,即也能被歸檔歉秫。

b. 應該在initWithCoder:方法中加上一句:self = [super initWithCoder:decoder];確保繼承的實例變量也能被解碼华临,即也能被恢復。

c.? 一般繼承自 NSObject 的類不需要寫super方法端考,因為NSObject作為基類并沒有遵守NSCoding協(xié)議,但是在解檔時要寫上self = [super init]揭厚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末却特,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子筛圆,更是在濱河造成了極大的恐慌裂明,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件太援,死亡現(xiàn)場離奇詭異闽晦,居然都是意外死亡扳碍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門仙蛉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笋敞,“玉大人,你說我怎么就攤上這事荠瘪『幌铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵哀墓,是天一觀的道長趁餐。 經(jīng)常有香客問我,道長篮绰,這世上最難降的妖魔是什么后雷? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮吠各,結(jié)果婚禮上臀突,老公的妹妹穿的比我還像新娘。我一直安慰自己走孽,他們只是感情好惧辈,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磕瓷,像睡著了一般盒齿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上困食,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天边翁,我揣著相機與錄音,去河邊找鬼硕盹。 笑死符匾,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瘩例。 我是一名探鬼主播啊胶,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼垛贤!你這毒婦竟也來了焰坪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤聘惦,失蹤者是張志新(化名)和其女友劉穎某饰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡黔漂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年诫尽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炬守。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡牧嫉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劳较,到底是詐尸還是另有隱情驹止,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布观蜗,位于F島的核電站臊恋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏墓捻。R本人自食惡果不足惜抖仅,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砖第。 院中可真熱鬧撤卢,春花似錦、人聲如沸梧兼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽羽杰。三九已至渡紫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間考赛,已是汗流浹背惕澎。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颜骤,地道東北人唧喉。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像忍抽,于是被迫代替她去往敵國和親八孝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容