ios開發(fā)入門- plist 文件讀寫

本章目標(biāo):? plist 文件的讀寫操作

在xcode中創(chuàng)建一個項目 會在supportion files 目錄下 看見一個已plist后綴類型的文件,這個文件 是以 key value 存放的鍵 值對的值。它全名是:Property List,屬性列表文件绒窑,它是一種用來存儲串行化后的對象的文件。屬性列表文件的擴展名為.plist?,因此通常被稱為?plist文件某饰。plist文件是標(biāo)準(zhǔn)的xml格式的。? 我們在日常開發(fā)中 可以用它 來存儲 一些系統(tǒng)的 的用戶信息,系統(tǒng)的配置信息等黔漂。

本章 我們來看看plist 文件是 如何讀寫的

在具體操作之前我們來先了解下幾個專業(yè)的名詞 :

NsBundler 主束 束是一個特定的文件夾類型诫尽,其中的內(nèi)容遵循特定的結(jié)構(gòu),應(yīng)用程序喝框架都是束炬守, NsBundler 一個主要的作用是獲取添加到項目的Resoureces文件加的資源牧嫉。

NSDictionary 字典 就是key-value對的集合。key是字符串(NSString)减途,value是對象指針酣藻。

啟動Xcode 創(chuàng)建一個名為”HelloWord“新項目:界面模板選擇為 single view appliction ,不會創(chuàng)建的同學(xué) 去看上一章喔? 項目信息填寫如下圖。填寫完成后 選擇項目保存位置

在Supporting Files 目錄下 創(chuàng)建一個新文件? 一個新的Plist 文件

Supporting files -> new file? -> ios -> Resourece -> Property List?

如圖 :



創(chuàng)建后命名為 citys 并保存? 改文件會出現(xiàn)在 Supporting Files 目錄下面

打開他 并添加 值 如圖 :


?該文件 在后面的 源碼中有 鳍置, 各位童鞋 可以去下載 節(jié)省下載時間

在本章里面 我們 沒用到界面 所有數(shù)據(jù) 在 日志中查看


下面看代碼

?? //創(chuàng)建主束 ?

??? NSBundle *bundle=[NSBundle mainBundle];

//讀取plist文件路徑

NSString *path=[bundle pathForResource:@"citys" ofType:@"plist"];

//讀取數(shù)據(jù)到 NsDictionary字典中?

NSDictionary *dictionary=[[NSDictionary alloc]initWithContentsOfFile:path];

NSLog(@"size is %d",[dictionary count]);?

//NSLog(@"data is %@",dictionary);?

NSArray *array=[dictionary allKeys];

// 循環(huán)輸出字典中的? data 數(shù)據(jù)?

for(id key in dictionary)


{

NSArray *arrays=[dictionary objectForKey:key];

for(int i=0;i<[arrays count];i++){

NSLog(@"key: %d,value: %@",i,[arrays objectAtIndex:i]);

}

}

把上面的代碼添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法中


保存運行 臊恋,各位童鞋 就可以看到 log 控制臺中看到 輸出的數(shù)據(jù)了。 如下

iphone_Sample_PlistReadAndWrite[864:f803] key: 0,value: 廣州

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 1,value: 深圳

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 2,value: 肇慶

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 3,value: 佛山

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 4,value: 東莞

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWri墓捻。抖仅。。砖第。撤卢。。梧兼。 省略


有一句話叫做三人行必有我?guī)煼欧裕鋵嵶鰹橐粋€開發(fā)者,有一個學(xué)習(xí)的氛圍跟一個交流圈子特別重要這是一個我的iOS交流群681503716羽杰,請備注編號《晨》渡紫,大牛歡迎入駐,正在求職的也可以加入考赛,大家一起交流學(xué)習(xí)惕澎,話糙理不糙,互相學(xué)習(xí)颜骤,共同進步唧喉,一起加油吧。)


在我們平時的手機開發(fā)中需要保存一些用戶數(shù)據(jù)忍抽,操作數(shù)據(jù)八孝。 plist 可以算是其中的一種方法了,下面我們來看看 plist 文件的寫操作鸠项。

程序繼續(xù)沿用上面的程序

在 ios中要寫入數(shù)據(jù) 干跛,那我們的數(shù)據(jù) 保存在哪兒呢, 是沙盒祟绊, 每個程序的數(shù)據(jù)只能保存在沙盒中楼入, 同樣我們的數(shù)據(jù) 也是保存在沙盒中哥捕。 少廢話了 ,直接看代碼

//plist write

//創(chuàng)建一個可變長度的NSMutableDictionary 對象 該對象專門用于存儲數(shù)據(jù)的

NSMutableDictionary *data=[[NSMutableDictionary alloc]init];

//添加數(shù)據(jù)

[data setObject:@"one" forKey:@"1"];

[data setObject:@"two" forKey:@"2"];

[data setObject:@"three" forKey:@"3"];

[data setObject:@"four" forKey:@"4"];

//要往沙盒中寫數(shù)據(jù)當(dāng)然要先取的沙盒目錄啦

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *plistPaht=[paths objectAtIndex:0];

//取得完整的文件名

NSString *fileName=[plistPaht stringByAppendingPathComponent:@"textdeom.plist"];

NSLog(@"fileName is%@",fileName);

//創(chuàng)建并寫入文件

[data writeToFile:fileName atomically:YES];

//檢查是否寫入

NSMutableDictionary *writeData=[[NSMutableDictionary alloc]initWithContentsOfFile:fileName];

NSLog(@"write data is :%@",writeData);

上面我們創(chuàng)建了一個NSMutableDictionary 可變長度的字典浅辙,并添加元素扭弧,然后在寫入沙盒中阎姥,最后并重新讀取出來记舆,? 這一章涉及了 沙盒的 內(nèi)容,大家 先了解這里呼巴,后面我們會再講沙盒的

上面的代碼添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

保存運行程序 效果如下 :


?運行程序會輸出 沙盒的地址 泽腮,和我們程序給 給 plist 寫入的 值

好了 這一章就到這里, 歡迎 各位童鞋 拍磚 衣赶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诊赊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子府瞄,更是在濱河造成了極大的恐慌碧磅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遵馆,死亡現(xiàn)場離奇詭異鲸郊,居然都是意外死亡,警方通過查閱死者的電腦和手機货邓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門秆撮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人换况,你說我怎么就攤上這事职辨。” “怎么了戈二?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵舒裤,是天一觀的道長。 經(jīng)常有香客問我觉吭,道長惭每,這世上最難降的妖魔是什么杖虾? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任症昏,我火速辦了婚禮富拗,結(jié)果婚禮上倒得,老公的妹妹穿的比我還像新娘挣磨。我一直安慰自己话侧,他們只是感情好馆蠕,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布涝桅。 她就那樣靜靜地躺著闷游,像睡著了一般峻汉。 火紅的嫁衣襯著肌膚如雪贴汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天休吠,我揣著相機與錄音扳埂,去河邊找鬼。 笑死瘤礁,一個胖子當(dāng)著我的面吹牛阳懂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柜思,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岩调,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赡盘?” 一聲冷哼從身側(cè)響起号枕,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陨享,沒想到半個月后葱淳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡抛姑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年赞厕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片途戒。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坑傅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喷斋,到底是詐尸還是另有隱情唁毒,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布星爪,位于F島的核電站浆西,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏顽腾。R本人自食惡果不足惜近零,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抄肖。 院中可真熱鬧久信,春花似錦、人聲如沸漓摩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽管毙。三九已至腿椎,卻和暖如春桌硫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啃炸。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工铆隘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人南用。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓膀钠,卻偏偏與公主長得像训枢,于是被迫代替她去往敵國和親托修。 傳聞我的和親對象是個殘疾皇子恒界,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354