plist 文件的讀寫操作

在xcode中創建一個項目 會在supportion files 目錄下 看見一個已plist後綴類型的文件,這個文件 是以 key value 存放的鍵 值對的值。它全名是:Property List,屬性列表文件,它是一種用來存儲串行化後的對象的文件。屬性列表文件的擴展名爲.plist ,因此通常被稱爲 plist文件。plist文件是標準的xml格式的。  我們在日常開發中 可以用它 來存儲 一些系統的 的用戶信息,系統的配置信息等。

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

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

NsBundler 主束 束是一個特定的文件夾類型,其中的內容遵循特定的結構,應用程序喝框架都是束, NsBundler 一個主要的作用是獲取添加到項目的Resoureces文件加的資源。

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

啓動Xcode 創建一個名爲”HelloWord“新項目:界面模板選擇爲 single view appliction ,不會創建的同學 去看上一章喔  項目信息填寫如下圖。填寫完成後 選擇項目保存位置

在Supporting Files 目錄下 創建一個新文件  一個新的Plist 文件

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

如圖 :

 

 

創建後命名爲 citys 並保存  改文件會出現在 Supporting Files 目錄下面

打開他 並添加 值 如圖 :

 

 該文件 在後面的 源碼中有 , 各位童鞋 可以去下載 節省下載時間

在本章裏面 我們 沒用到界面 所有數據 在 日誌中查看

 

下面看代碼

   //創建主束  

    NSBundle *bundle=[NSBundle mainBundle];

   //讀取plist文件路徑
    NSString *path=[bundle pathForResource:@"citys" ofType:@"plist"];

   //讀取數據到 NsDictionary字典中 
    NSDictionary *dictionary=[[NSDictionary alloc]initWithContentsOfFile:path];
    NSLog(@"size is %d",[dictionary count]); 
    //NSLog(@"data is %@",dictionary); 
    NSArray *array=[dictionary allKeys];
   

   // 循環輸出字典中的  data 數據 
      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 控制檯中看到 輸出的數據了。 如下

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。。。。。。。 省略

 

 

在我們平時的手機開發中需要保存一些用戶數據,操作數據。 plist 可以算是其中的一種方法了,下面我們來看看 plist 文件的寫操作。

程序繼續沿用上面的程序

在 ios中要寫入數據 ,那我們的數據 保存在哪兒呢, 是沙盒, 每個程序的數據只能保存在沙盒中, 同樣我們的數據 也是保存在沙盒中。 少廢話了 ,直接看代碼

 //plist write
    //創建一個可變長度的NSMutableDictionary 對象 該對象專門用於存儲數據的
    NSMutableDictionary *data=[[NSMutableDictionary alloc]init];
    //添加數據
    [data setObject:@"one" forKey:@"1"];
    [data setObject:@"two" forKey:@"2"];
    [data setObject:@"three" forKey:@"3"];
    [data setObject:@"four" forKey:@"4"];
    //要往沙盒中寫數據當然要先取的沙盒目錄啦
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *plistPaht=[paths objectAtIndex:0];
    

    //取得完整的文件名
    NSString *fileName=[plistPaht stringByAppendingPathComponent:@"textdeom.plist"];
    NSLog(@"fileName is%@",fileName);
    //創建並寫入文件
    [data writeToFile:fileName atomically:YES];
    
    //檢查是否寫入
    NSMutableDictionary *writeData=[[NSMutableDictionary alloc]initWithContentsOfFile:fileName];
    NSLog(@"write data is :%@",writeData);

上面我們創建了一個NSMutableDictionary 可變長度的字典,並添加元素,然後在寫入沙盒中,最後並重新讀取出來,  這一章涉及了 沙盒的 內容,大家 先了解這裏,後面我們會再講沙盒的

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

保存運行程序 效果如下 :

 

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章