1. 程式人生 > >Plist檔案讀取

Plist檔案讀取

IOS開發-plist檔案的使用-NSBundle使用

一. 概述

上文中的圖片瀏覽器的例項,在資料的使用上做的很不好,由於將圖片資料寫到了程式碼裡,不是一種合理的做法。如果資料經常改,就要經常翻開對應的程式碼進行修改,造成程式碼擴充套件性低,因此,可以考慮將經常變的資料放在檔案中進行儲存,程式啟動後從檔案中讀取最新的資料。如果要變動資料,直接修改資料檔案即可,不用修改程式碼。而存放資料的檔案陳偉plist檔案。

二. Plist檔案

1. 什麼是plist的檔案?

plist全稱為Property List也稱為屬性列表檔案,它提供了一個方便的方法來存放簡單的結構資料,通常為XML格式,Property List存放的資料型別是有限的,包括NSArray、NSDictionary、   NSString、 Boolean、NSNumber、NSData、NSDate。這種屬性列表檔案的副檔名是plist,因此也成為“Plist檔案”.

注意:plist檔案的根資料型別即解析plist檔案得到的資料型別,只有兩種NSArray或者NSDictionary。



2.建立plist檔案



3. 建立plist檔案中的資料

在xcode中開啟即可點選+號新增資料並可選則資料型別如下圖:



4.利用NSBundle解析plist檔案:

1. 利用NSBundle可以訪問某個資源包的內容
2. 如果訪問軟體中最主要資源包的內容,就應該利用mainBundle
NSBundle *bundle = [NSBundle mainBundle];
3. 利用NSBundle獲取檔案最主要的路徑path,引數為檔名加上副檔名。
 NSString *path = [bundle pathForResource:@"describ" ofType:@"plist"];
也可以在檔案名種帶上副檔名,將副檔名引數置為nil

 NSString *path = [bundle pathForResource:@"describ.plist" ofType:nil];
4. 使用檔案中的陣列或字典
// 如果plist檔案的根資料為陣列
NSArray *imageArray = [NSArray arrayWithContentsOfFile:path];
// 如果plist檔案的根資料為字典
NSDictionary *dict =[NSDictionary dictionaryWithContentsOfFile:path];
三. 使用Plist檔案優化圖片瀏覽器程式

1.將圖片的名字和描述以字典陣列的方式新增得到建立的plist檔案中。建立好的檔案如下圖



2. 程式碼的修改.使用plist檔案之後只需要修改上個例項的imageData方法

複製程式碼
- (NSArray *)imageData
{
    // 懶載入必須先判斷是否已經載入了資料
    if(_imageData == nil)
    {
        // 獲取plist檔案路徑
        //NSString *path = [[NSBundle mainBundle] pathForResource:@"imageData" ofType:@"plist"];
        NSString *path = [[NSBundle mainBundle] pathForResource:@"imageData.plist" ofType:nil];
        // 從plist檔案解析陣列
        _imageData = [NSArray arrayWithContentsOfFile:path];
    }
    return _imageData;
}

使用plist檔案之後是我們的程式更加靈活,將資料和程式碼分開,需要增刪資料時不必再修改程式碼。