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文件之后是我們的程序更加靈活,將數據和代碼分開,需要增刪數據時不必再修改代碼。

 

 

圖片劉瀏覽器pilist


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM