數(shù)據(jù)持久化機(jī)制

iOS中數(shù)據(jù)持久化的幾種方式:
1.屬性列表
2.對象歸檔
3.數(shù)據(jù)庫存儲(SQLite3)
4.蘋果公司提供的持久性工具Core Data癣蟋。

屬性文件

屬性列表文件是一種XML文件,F(xiàn)oundation框架中的數(shù)組和字典等都可以于屬性列表文件相互轉(zhuǎn)換。
NSArray類常用讀寫屬性列表文件的方法:

+arrayWithContentsOfFile:
-initWithContentsOfFile: 
-writeToFile:atomically:

NSDictionary類常用讀寫屬性列表文件的方法:

+dictionaryWithContentsOfFile孵户;
-initWithContentsOfFile橄杨;
-writeToFile:atomically:

當(dāng)然也可以通過代碼直接創(chuàng)建plist文件朴上。

對象歸檔

對象歸檔是將對象歸檔以文件的形式保存到磁盤中(也稱為序列化,持久化)褐捻,使用的時候讀取該文件的保存路徑讀取文件的內(nèi)容(也稱為接檔,反序列化)椅邓。
簡單對象歸檔
使用兩個類:
1.NSKeyedArichiver
2.NSKeyedUnarchiver
例子:使用兩個類:

NSKeyedArichiver柠逞、NSKeyedUnarchiver
NSString *homeDirectory = NSHomeDirectory();   //獲取根目錄
NSString homePath = [homeDirectory stringByAppendingPathComponent:@"自定義文件名,如test.archiver"];
NSArray *array = @[@"abc", @"123", @12];
Bool flag = [NSKeyedArichiver archiveRootObject:array toFile:homePath];
if(flag) {
       NSLog(@"歸檔成功景馁!");
}

自定義內(nèi)容歸檔
歸檔:
使用NSData實例作為歸檔的存儲數(shù)據(jù)
添加歸檔的內(nèi)容---使用鍵值對
完成歸檔
解歸檔:
從磁盤讀取文件板壮,生成NSData實例
根據(jù)NSData實例和初始化解歸檔實例
解歸檔,根據(jù)key訪問value

SQLIte3

上述方法都有一個致命的缺點(diǎn)合住,那就是都無法存儲大批量的數(shù)據(jù)绰精,有性能的問題撒璧。
舉例:使用歸檔。
(1)數(shù)據(jù)的存取都必須是完整的笨使,要求寫入的時候要一次性寫入卿樱,讀取的時候要一次性全部讀取,這涉及到應(yīng)用的性能問題阱表。
(2)如果有1000條數(shù)據(jù)殿如,此時要把第1001條數(shù)據(jù)存入,那么需要把所有的數(shù)據(jù)取出來最爬,把這條數(shù)據(jù)加上去之后涉馁,再存入。
創(chuàng)建步驟
1爱致、創(chuàng)建一個簡單的View based application
2烤送、選擇項目文件,然后選擇目標(biāo)糠悯,添加libsqlite3.dylib庫到選擇框架
3帮坚、通過選擇" File-> New -> File... -> "選擇 Objective C class 創(chuàng)建新文件,單擊下一步
4互艾、"sub class of"為NSObject"试和,類命名為DBManager
5、選擇創(chuàng)建
6纫普、更新DBManager,

CoreData

Core Data是蘋果官方推薦使用的數(shù)據(jù)持久化方式阅悍,在使用的過程中,不需要導(dǎo)入數(shù)據(jù)庫框架昨稼,也不需要使用sql語句操作數(shù)據(jù)庫节视,完全是按照面向?qū)ο蟮乃枷耄褂脤嶓w模型來操作數(shù)據(jù)庫假栓。在使用的過程中需要注意的是寻行,如果模型發(fā)生了變化,可以選擇重新生成實體類文件匾荆,但是自動生成的數(shù)據(jù)庫并不會自動更新拌蜘,需要考慮重新生成數(shù)據(jù)庫,并把之前數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行移植棋凳。Core Data能夠簡化操作拦坠,但是它不支持跨平臺使用,如果想實現(xiàn)跨平臺剩岳,就需要使用SQLite來進(jìn)行數(shù)據(jù)持久化贞滨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晓铆,更是在濱河造成了極大的恐慌勺良,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骄噪,死亡現(xiàn)場離奇詭異尚困,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)链蕊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門事甜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滔韵,你說我怎么就攤上這事逻谦。” “怎么了陪蜻?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵邦马,是天一觀的道長。 經(jīng)常有香客問我宴卖,道長滋将,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任症昏,我火速辦了婚禮随闽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肝谭。我一直安慰自己橱脸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布分苇。 她就那樣靜靜地躺著,像睡著了一般屁桑。 火紅的嫁衣襯著肌膚如雪医寿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天蘑斧,我揣著相機(jī)與錄音靖秩,去河邊找鬼。 笑死竖瘾,一個胖子當(dāng)著我的面吹牛沟突,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捕传,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惠拭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起职辅,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤棒呛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后域携,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體簇秒,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年秀鞭,在試婚紗的時候發(fā)現(xiàn)自己被綠了趋观。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锋边,死狀恐怖皱坛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宠默,我是刑警寧澤麸恍,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站搀矫,受9級特大地震影響抹沪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓤球,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一融欧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卦羡,春花似錦噪馏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拟赊,卻和暖如春刺桃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吸祟。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工瑟慈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人屋匕。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓葛碧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親过吻。 傳聞我的和親對象是個殘疾皇子进泼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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

  • 1.簡介 數(shù)據(jù)持久存儲是一種非易失性存儲,在重啟動計算機(jī)或設(shè)備后也不會丟失數(shù)據(jù)。持久化技術(shù)主要用于MVC模型中的m...
    公子無禮閱讀 1,682評論 0 4
  • 一缘琅、數(shù)據(jù)持久化概述 數(shù)據(jù)持久化就是數(shù)據(jù)的永久存儲粘都。其本質(zhì)是將數(shù)據(jù)保存為文件,存到程序的沙盒中刷袍。 1翩隧、數(shù)據(jù)持久化的方...
    lilinjianshu閱讀 489評論 0 1
  • 數(shù)據(jù)持久化的相關(guān)知識 四種將數(shù)據(jù)持久化存儲到iOS文件系統(tǒng)的機(jī)制: plist 對象歸檔 iOS的嵌入式關(guān)系數(shù)據(jù)庫...
    melouverrr閱讀 626評論 0 0
  • 一、數(shù)據(jù)持久化概述 數(shù)據(jù)持久化就是數(shù)據(jù)的永久存儲呻纹。其本質(zhì)是將數(shù)據(jù)保存為文件堆生,存到程序的沙盒中。 1雷酪、數(shù)據(jù)持久化的方...
    lilinjianshu閱讀 608評論 0 1
  • 1. 應(yīng)用的沙盒 注意:如果要為應(yīng)用程序啟用分享功能淑仆,需要打開它的info.plist文件并添加鍵為Applica...
    宇宇宇啊啊啊閱讀 282評論 0 3