iOS數(shù)據(jù)持久化的常用方式

一聚假、plist文件

1. 什么是plist文件

plist全稱:property List 屬性列表文件,plist是一個(gè)xml格式文件闰非,后綴為.plist膘格,只能持久化NSArray和NADictionary類型對象

2. plist文件的作用

作用:plist是做數(shù)據(jù)持久化的專業(yè)文件,.plist一般情況下用于存儲(chǔ)用戶密碼财松、臨時(shí)信息瘪贱、簡介這樣的簡單

3. Plist文件特點(diǎn)(先將Xcode創(chuàng)建plist文件,再通過創(chuàng)建好的plist文件介紹plist文件特點(diǎn))
Plist文件特點(diǎn):
1. Plist文件的根路徑只能是數(shù)組和字典(Plist文件只能持久化數(shù)組和字典對象)
2. Plist文件的子路徑只能是NSString, NSNumber, NSData, NSDate, NSBoolean, NSArray, NSDictionary類型對象
4. Xcode創(chuàng)建plist文件
Plist文件內(nèi)容的格式是xml語法格式
創(chuàng)建步驟
1.點(diǎn)擊File--》New File 彈出一對話框
2.iOS程序選中iOS欄中的Resource/Mac程序選中OS X 欄中的resource
3.點(diǎn)擊Resource中的Property List 創(chuàng)建plist文件
4.點(diǎn)擊文件中的'+'可以添加數(shù)據(jù)
5. 讀取plist文件
//將plist文件讀取到數(shù)組中(類方法)
    +(id)arrayWithContentsOfFile:(NSString *)path;
//將plist文件讀取到字典中(類方法)
    +(id)dictionaryWithContentsOfFile:(NSString *)path

二辆毡、 歸檔和反歸檔

1. 什么是歸檔和反歸檔

歸檔:把對象轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)菜秦,存儲(chǔ)到文件中

反歸檔:把歸檔的對象文件讀成原來的內(nèi)存中的對象

2. 系統(tǒng)類對象的歸檔和反歸檔

系統(tǒng)類歸檔

//NSKeyedArchiver類的方法
+ (BOOL)archiveRootObject:(id)rootObject toFile:(NSString *)path;
系統(tǒng)類反歸檔
//NSKeyedUnarchiver類的方法
+ (id)unarchiveObjectWithFile:(NSString *)path;
3. 歸檔注意事項(xiàng)
// 歸檔對象, 或數(shù)組(及其里面的對象)都要實(shí)現(xiàn)一個(gè)協(xié)議NSCoding
// 為啥實(shí)現(xiàn)協(xié)議 : 因?yàn)闅w檔執(zhí)行ecodeWithCodeer方法胚迫,解檔執(zhí)行initWithCoder
4. 代碼實(shí)例(將一個(gè)數(shù)組進(jìn)行歸檔)
//文件的路徑
    NSString *path = [NSString stringWithFormat:@"%@/friends.data", NSHomeDirectory()];
// 歸檔:
    [NSKeyedArchiver archiveRootObject:array toFile:path];
// 歸檔執(zhí)行的方法
- (void)encodeWithCoder:(NSCoder *)aCoder{
    [aCoder encodeObject:self.nickName forKey:@"nickname"];
    [aCoder encodeObject:self.sex forKey:@"sex"];
}
// 反歸檔:
    NSArray *readArray = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
// 反歸檔執(zhí)行的方法
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
    if (self = [super init]) {
        self.nickName = [aDecoder decodeObjectForKey:@"nickname"];
        self.sex = [aDecoder decodeObjectForKey:@"sex"];
    }
    return self;
}

三喷户、NSUserDefault

1. NSUserDefaults適合存儲(chǔ)輕量級的本地?cái)?shù)據(jù)唾那,比如要保存一個(gè)登陸界面的數(shù)據(jù)访锻,用戶名、密碼之類的闹获,使用NSUserDefaults是首選期犬。

下次再登陸的時(shí)候就可以直接從NSUserDefaults里面讀取上次登陸的信息。

2. NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.
3. 實(shí)例(存儲(chǔ)登陸界面的用戶名)

(一)避诽、存儲(chǔ)數(shù)據(jù)

// 保存用戶名龟虎, 下次自動(dòng)填充用戶名
    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    [ud setValue:_usernameTextField.text forKey:@"SaveUserName"];
// 同步到文件中
    [ud synchronize];

(二)、讀取數(shù)據(jù)

    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
    NSString *username = [ud valueForKey:@"SaveUserName"];

四沙庐、文件

//文件的路徑
    NSString *path = [NSString stringWithFormat:@"%@/file.text", NSHomeDirectory()];
//實(shí)例化NSFileManager的單例對象
    NSFileManager *fileManager = [NSFileManager defaultManager];
//創(chuàng)建文件
    [fileManager createFileAtPath:path contents:nil attributes:nil];
//實(shí)例化NSFileHandle對象
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:path];
// 寫入數(shù)據(jù)
    NSString *string = @"jin tian tian qi zhen bu cuo";
    NSData *dataFromString = [string dataUsingEncoding:NSUTF8StringEncoding];
    [fileHandle writeData:dataFromString];
// 讀取數(shù)據(jù)
    //設(shè)置偏移量為開始位置
    [fileHandle seekToFileOffset:0];
    NSData *dataAll = [fileHandle readDataToEndOfFile];
    NSString *stringFromdataAll = [[NSString alloc]initWithData:dataAll encoding:NSUTF8StringEncoding];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲤妥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拱雏,更是在濱河造成了極大的恐慌棉安,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铸抑,死亡現(xiàn)場離奇詭異贡耽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鹊汛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門蒲赂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刁憋,你說我怎么就攤上這事滥嘴。” “怎么了至耻?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵氏涩,是天一觀的道長届囚。 經(jīng)常有香客問我,道長是尖,這世上最難降的妖魔是什么意系? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮饺汹,結(jié)果婚禮上蛔添,老公的妹妹穿的比我還像新娘。我一直安慰自己兜辞,他們只是感情好迎瞧,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逸吵,像睡著了一般凶硅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扫皱,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天足绅,我揣著相機(jī)與錄音,去河邊找鬼韩脑。 笑死氢妈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的段多。 我是一名探鬼主播首量,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼进苍!你這毒婦竟也來了加缘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤觉啊,失蹤者是張志新(化名)和其女友劉穎拣宏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柄延,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚀浆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搜吧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片市俊。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滤奈,靈堂內(nèi)的尸體忽然破棺而出摆昧,到底是詐尸還是另有隱情,我是刑警寧澤蜒程,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布绅你,位于F島的核電站伺帘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忌锯。R本人自食惡果不足惜伪嫁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望偶垮。 院中可真熱鬧张咳,春花似錦、人聲如沸似舵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砚哗。三九已至龙助,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛛芥,已是汗流浹背提鸟。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留常空,地道東北人沽一。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓盖溺,卻偏偏與公主長得像漓糙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子烘嘱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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

  • 1昆禽、 沙盒概念基本介紹 iOS 應(yīng)用程序只能在該 app 的文件系統(tǒng)中讀取。這個(gè)默認(rèn)的 app 文件系統(tǒng)就是我們說...
    Laughingg閱讀 2,642評論 2 10
  • 前言: 在程序開發(fā)中蝇庭,數(shù)據(jù)層永遠(yuǎn)是程序的核心結(jié)構(gòu)之一醉鳖。對這些數(shù)據(jù)的加工處理是代碼中能體現(xiàn)技術(shù)水平的一大模塊,比如數(shù)...
    麥穗0615閱讀 1,456評論 3 22
  • 1.簡介 數(shù)據(jù)持久存儲(chǔ)是一種非易失性存儲(chǔ)哮内,在重啟動(dòng)計(jì)算機(jī)或設(shè)備后也不會(huì)丟失數(shù)據(jù)盗棵。持久化技術(shù)主要用于MVC模型中的m...
    公子無禮閱讀 1,674評論 0 4
  • 一、文件 應(yīng)用程序包 : 這里面存放的是應(yīng)用程序的源文件北发,包括資源文件和可執(zhí)行文件纹因。NSString *path ...
    今天又要上班嗎閱讀 597評論 0 2
  • 當(dāng)前現(xiàn)狀:高I,高D琳拨,低S瞭恰,高C。調(diào)整目標(biāo):高I狱庇,高D惊畏,高S恶耽,中C甚至低C。調(diào)整方向:刻意練習(xí)S颜启,刻意練習(xí)D偷俭,刻意...
    whalecao閱讀 455評論 0 0