我們在寫 app 很多時候都可能需要用到一些類似與城市列表之類的數(shù)據(jù)欧漱,這些數(shù)據(jù)可以保存在 plist 文件里仰禀。
解釋一下桑嘶,plist 文件就是 Property List 文件矮湘,我們在 Xcode 中新建一個 Project 的時候览露,在 Project 中可以看到有一個 Info.plist 文件,這種以 .plist 后綴結(jié)尾的文件是以 key-value 鍵值對的形式保存數(shù)據(jù)的丽惶。在開發(fā)中炫七,我們可以使用這些 plist 文件保存一些系統(tǒng)配置、用戶信息等的信息钾唬,炒雞方便万哪。
這樣吧,我搞一個 plist 文件抡秆,里面放有一些城市列表數(shù)據(jù)奕巍,然后把它讀取出來。
開搞
新建一個 Property List 文件(以下簡稱 plist 文件)琅轧,姑且起個名字 Cities.plist
打開 Cities.plist 文件伍绳,發(fā)現(xiàn)它可以存儲 Array(數(shù)組)和 Dictionary(字典)數(shù)據(jù)
由于城市列表就是個數(shù)組,所以我們在 Root 這個 key 中的 Type 選擇 Array乍桂,并往里面添加點城市數(shù)據(jù)
添加完模擬數(shù)據(jù),才發(fā)現(xiàn)添加的不是城市數(shù)據(jù)...算了效床,當(dāng)作城市吧
其實 plist 文件本質(zhì)就是一個 xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>cityID</key>
<integer>1</integer>
<key>cityName</key>
<string>北京</string>
<key>cityRemark</key>
<string>直轄市</string>
</dict>
<dict>
<key>cityID</key>
<integer>2</integer>
<key>cityName</key>
<string>天津</string>
<key>cityRemark</key>
<string>直轄市</string>
</dict>
<dict>
<key>cityID</key>
<integer>3</integer>
<key>cityName</key>
<string>河北</string>
<key>cityRemark</key>
<string>省</string>
</dict>
<dict>
<key>cityID</key>
<integer>4</integer>
<key>cityName</key>
<string>山西</string>
<key>cityRemark</key>
<string>省</string>
</dict>
<dict>
<key>cityID</key>
<integer>5</integer>
<key>cityName</key>
<string>內(nèi)蒙古</string>
<key>cityRemark</key>
<string>自治區(qū)</string>
</dict>
<dict>
<key>cityID</key>
<integer>6</integer>
<key>cityName</key>
<string>遼寧</string>
<key>cityRemark</key>
<string>省</string>
</dict>
</array>
</plist>
讀取 plist 文件
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, strong) NSArray *cities;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSBundle *bundle = [NSBundle mainBundle];
NSString *filePath = [bundle pathForResource:@"Cities" ofType:@"plist"];
self.cities = [NSArray arrayWithContentsOfFile:filePath];
NSLog(@"城市列表-->%@", self.cities);
}
@end
控制臺打佣米谩:
這樣拿到數(shù)據(jù)就可以對它進(jìn)行一些處理了。
好吧剩檀,我只是經(jīng)常要用到記錄一下而已??