【iOS】操作plist

就以一片plist的操作開始吧!

一砸紊、今天寫plist文件苛谷,發(fā)現(xiàn)沒有寫進(jìn)去盗忱,后來查了才發(fā)現(xiàn)問題所在:

原文鏈接:http://stackoverflow.com/questions/7628372/ios-how-to-write-a-data-in-plist

二、plist的基本操作

plist的保存位置

1屉栓,工程沙盒里(就是程序user Document文件夾下舷蒲,以讀取文件,寫入文件方式)

2友多,工程自身里(就是在工程里手動創(chuàng)建一個如.plist文件牲平,把固定的內(nèi)容寫入,這個需要人工手動寫入)

3域滥,工程沙盒里(保存到user Document下纵柿,不過不需要讀寫文件,用系統(tǒng)的?NSUserDefaults 可以快速保存添加讀取刪除基本數(shù)據(jù)類型启绰,類似于android里的Sharedpreferences?)

先看截圖吧

控制臺輸出的為工程下plist文件和沙盒文件的路徑昂儒,通過截圖我們可以看到,前綴都是統(tǒng)一的委可,只是到了程序的文件夾后渊跋,一個是appname.app,另一個是Documents下着倾。所以存放位置還是不一樣的拾酝。

首先說一下,工程下的.plist是我們不能在代碼中寫入的,可以讀取卡者,但是不可以寫入(目前我是這樣的結(jié)論蒿囤,猜測應(yīng)該是apple為了安全限制的),所以崇决,代碼中進(jìn)行文件寫等操作只能在沙盒路徑下的文件中操作材诽。

(程序常用固定數(shù)據(jù)镶摘,比如離線地圖數(shù)據(jù),各城市經(jīng)緯度信息等需要我們綁定到程序里(比UserDocument安全)岳守,那么凄敢,可以代碼循環(huán)寫入,把.plist寫在沙盒內(nèi)湿痢,然后手動copy到工程目錄下涝缝,這樣就不用我們手動添加啦)

讀寫操作:

1-1,創(chuàng)建plist文件譬重。

按command +N快捷鍵創(chuàng)建拒逮,或者File —> New —> New File,選擇Resource下的Property List

1-2臀规,工程路徑plist文件讀取滩援。

[cpp]view plaincopy

//path?讀取當(dāng)前程序定義好的provinces.plist省份城市文件

NSString?*path?=?[[NSBundle?mainBundle]?pathForResource:@"provinces"ofType:@"plist"];

NSDictionary?*data?=?[NSDictionary?dictionaryWithContentsOfFile:path];

self.provincesContent?=?[NSArray?arrayWithArray:[data?objectForKey:@"province"]];//array數(shù)組的名稱就叫province

1-3,讀取后賦值給我們相應(yīng)的數(shù)據(jù)類型塔嬉,就可以直接使用了玩徊,就是這么簡單。

2-1谨究,沙盒路徑plist文件的讀取恩袱。

[cpp]view plaincopy

NSArray?*patharray?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);

NSString?*path?=??[patharray?objectAtIndex:0];

NSString?*filepath=[path?stringByAppendingPathComponent:@"provinces.plist"];//添加我們需要的文件全稱

//獲取此路徑下的我們需要的數(shù)據(jù)(NSArray,NSDictionary,NSString...)

NSMutableArray?*rootArray?=?[NSMutableArray?arrayWithContentsOfFile:filepath];//注意,如果想添加新的數(shù)據(jù)胶哲,需要NSMutable類型的

2-2畔塔,如果document里沒有此文件,會自動創(chuàng)建鸯屿,讀取賦值后澈吨,便可使用,同時可以add寄摆,update谅辣,和remove,具體看上面的截圖冰肴,一目了然屈藐。

3-1,NSUserDefaults快速讀寫熙尉,利用系統(tǒng)提供的方法联逻,我們可以快速保存簡單數(shù)據(jù)類型,如用戶登錄用戶名密碼检痰。

[cpp]view plaincopy

NSUserDefaults?*defaults?=?[NSUserDefaults?standardUserDefaults];//獲取標(biāo)準(zhǔn)函數(shù)對象

NSMutableDictionary?*defaultcoordinate?=?[defaults?objectForKey:@"default_coordinate"];//通過對象獲取名稱下NSMutableDictionary數(shù)據(jù)

NSString?*currentCity?=?[defaultcoordinate?objectForKey:@"c_name"];

3-2包归,增刪改,一看便會铅歼。

[cpp]view plaincopy

[defaults?setObject:@"kaka"forKey:@"newdata"];//添加id對象類型數(shù)據(jù)

[defaults?objectForKey:@"newdata"];//獲取對象類型數(shù)據(jù)

[defaults?setDouble:2013?forKey:@"double"];//添加double類型數(shù)據(jù)

[defaults?doubleForKey:@"double"];//獲取double類型數(shù)據(jù)

[defaults?setBool:NO?forKey:@"BOOL"];//添加BOOL類型數(shù)據(jù)

[defaults?boolForKey:@"BOOL"];//獲取BOOL類型數(shù)據(jù)

[defaults?setInteger:12?forKey:@"int"];//添加int類型數(shù)據(jù)

[defaults?integerForKey:@"int"];//獲取int類型數(shù)據(jù)

[defaults?setFloat:0.23?forKey:@"float"];//添加Float類型數(shù)據(jù)

[defaults?floatForKey:@"float"];//獲取float類型數(shù)據(jù)

[defaults?removeObjectForKey:@"newdata"];//刪除對象數(shù)據(jù)

3-3公壤,操作之后記得Synchronize同步操作换可,否則偶然會因為別的線程占大量內(nèi)存而沒有保存成功

[cpp]view plaincopy

[defaults?synchronize];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市厦幅,隨后出現(xiàn)的幾起案子沾鳄,更是在濱河造成了極大的恐慌,老刑警劉巖确憨,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件译荞,死亡現(xiàn)場離奇詭異,居然都是意外死亡休弃,警方通過查閱死者的電腦和手機(jī)吞歼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塔猾,“玉大人篙骡,你說我怎么就攤上這事≌傻椋” “怎么了糯俗?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長老虫。 經(jīng)常有香客問我叶骨,道長,這世上最難降的妖魔是什么祈匙? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮天揖,結(jié)果婚禮上夺欲,老公的妹妹穿的比我還像新娘。我一直安慰自己今膊,他們只是感情好些阅,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斑唬,像睡著了一般市埋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恕刘,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天缤谎,我揣著相機(jī)與錄音,去河邊找鬼褐着。 笑死坷澡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的含蓉。 我是一名探鬼主播频敛,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼项郊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斟赚?” 一聲冷哼從身側(cè)響起着降,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拗军,沒想到半個月后鹊碍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡食绿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年侈咕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片器紧。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡耀销,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出铲汪,到底是詐尸還是另有隱情熊尉,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布掌腰,位于F島的核電站狰住,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏齿梁。R本人自食惡果不足惜催植,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勺择。 院中可真熱鬧创南,春花似錦、人聲如沸省核。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽气忠。三九已至邻储,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旧噪,已是汗流浹背吨娜。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留舌菜,地道東北人萌壳。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親袱瓮。 傳聞我的和親對象是個殘疾皇子缤骨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,139評論 30 470
  • 最近一朋友正準(zhǔn)備跳槽,就從各處搜索整理一些基礎(chǔ)尺借,便于朋友復(fù)習(xí)绊起,也便于自己復(fù)習(xí)查看. 1. 回答person的ret...
    smile麗語閱讀 1,738評論 0 7
  • 1.不可變數(shù)組轉(zhuǎn)變?yōu)榭勺償?shù)組聲明實例變量的數(shù)組 必須記得實現(xiàn) 對于遍歷數(shù)組找到對象后 如果還需要查找 記得先結(jié)束 ...
    小新xin閱讀 699評論 0 1
  • 循環(huán)引用:http://ios.jobbole.com/82077/類別的作用功能:1.擴(kuò)充現(xiàn)有類的功能2.對現(xiàn)有...
    得一切從簡閱讀 500評論 0 1