我们在写 app 很多时候都可能需要用到一些类似与城市列表之类的数据,这些数据可以保存在 plist 文件里。
解释一下,plist 文件就是 Property List 文件,我们在 Xcode 中新建一个 Project 的时候,在 Project 中可以看到有一个 Info.plist 文件,这种以 .plist 后缀结尾的文件是以 key-value 键值对的形式保存数据的。在开发中,我们可以使用这些 plist 文件保存一些系统配置、用户信息等的信息,炒鸡方便。
这样吧,我搞一个 plist 文件,里面放有一些城市列表数据,然后把它读取出来。
开搞
新建一个 Property List 文件(以下简称 plist 文件),姑且起个名字 Cities.plist
打开 Cities.plist 文件,发现它可以存储 Array(数组)和 Dictionary(字典)数据
由于城市列表就是个数组,所以我们在 Root 这个 key 中的 Type 选择 Array,并往里面添加点城市数据
添加完模拟数据,才发现添加的不是城市数据...算了,当作城市吧
其实 plist 文件本质就是一个 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>内蒙古</string>
<key>cityRemark</key>
<string>自治区</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
控制台打印:
这样拿到数据就可以对它进行一些处理了。
好吧,我只是经常要用到记录一下而已🌚