iOS DeveloperiOS 开发 iOS开发

iOS 中 plist 文件的使用

2016-06-27  本文已影响4188人  angelen

我们在写 app 很多时候都可能需要用到一些类似与城市列表之类的数据,这些数据可以保存在 plist 文件里。

解释一下,plist 文件就是 Property List 文件,我们在 Xcode 中新建一个 Project 的时候,在 Project 中可以看到有一个 Info.plist 文件,这种以 .plist 后缀结尾的文件是以 key-value 键值对的形式保存数据的。在开发中,我们可以使用这些 plist 文件保存一些系统配置、用户信息等的信息,炒鸡方便。

你看这调皮的 Info.plist 文件

这样吧,我搞一个 plist 文件,里面放有一些城市列表数据,然后把它读取出来。

开搞

新建一个 Property List 文件(以下简称 plist 文件),姑且起个名字 Cities.plist


选择 iOS -> Resource -> Property List

打开 Cities.plist 文件,发现它可以存储 Array(数组)和 Dictionary(字典)数据


Cities.plist 初体验

由于城市列表就是个数组,所以我们在 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

控制台打印:


城市列表

这样拿到数据就可以对它进行一些处理了。
好吧,我只是经常要用到记录一下而已🌚

上一篇下一篇

猜你喜欢

热点阅读