Plist檔案讀取
阿新 • • 發佈:2018-12-17
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檔案之後是我們的程式更加靈活,將資料和程式碼分開,需要增刪資料時不必再修改程式碼。