天天看點

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檔案之後是我們的程式更加靈活,将資料和代碼分開,需要增删資料時不必再修改代碼。
           

繼續閱讀