iOS学习之 plist文件的读写

在做iOS开发时,经常用到到plist文件,  那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。文件是xml格式的。

Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息

我们创建一个项目来学习plist文件的读写。

1、创建项目Plistdemo

项目创建之后可以找到项目对应的plist文件,打开如下图所示:

在编辑器中显示类似与表格的形式,可以在plist上右键,用源码方式打开,就能看到plist文件的xml格式了。

2、创建plist文件。

按command +N快捷键创建,或者File —> New —> New File,选择Mac OS X下的Property List

创建plist文件名为plistdemo。

打开plistdemo文件,在空白出右键,右键选择Add row 添加数据,添加成功一条数据后,在这条数据上右键看到 value Type选择Dictionary。点加号添加这个Dictionary下的数据

添加完key之后在后面添加Value的值,添加手机号和年龄

创建完成之后用source code查看到plist文件是这样的:

1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3<plist version="1.0"> 4<dict> 5 <key>jack</key> 6 <dict> 7 <key>phone_num</key> 8 <string>13801111111</string> 9 <key>age</key> 10 <string>22</string> 11 </dict> 12 <key>tom</key> 13 <dict> 14 <key>phone_num</key> 15 <string>13901111111</string> 16 <key>age</key> 17 <string>36</string> 18 </dict> 19</dict> 20</plist>

3、读取plist文件的数据

现在文件创建成功了,如何读取呢,实现代码如下:

1- (void)viewDidLoad 2{ 3 [super viewDidLoad]; 4 //读取plist 5 6 NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"plistdemo" ofType:@"plist"]; 7 NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 8 NSLog(@"%@", data);//直接打印数据。 9}

打印出来的结果:

1PlistDemo[6822:f803] { 2 jack = { 3 age = 22; 4 "phone_num" = 13801111111; 5 }; 6 tom = { 7 age = 36; 8 "phone_num" = 13901111111; 9 }; 10}

这样就把数据读取出来了。

4、创建和写入plist文件

在开发过程中,有时候需要把程序的一些配置保存下来,或者游戏数据等等。 这时候需要写入Plist数据。

写入的plist文件会生成在对应程序的沙盒目录里。

接着上面读取plist数据的代码,加入了写入数据的代码,

1- (void)viewDidLoad 2{ 3 [super viewDidLoad]; 4 //读取plist 5 6 NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"plistdemo" ofType:@"plist"]; 7 NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 8 NSLog(@"%@", data); 9 10 //添加一项内容 11 [data setObject:@"add some content" forKey:@"c_key"]; 12 13 //获取应用程序沙盒的Documents目录 14 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); 15 NSString *plistPath1 = [paths objectAtIndex:0]; 16 17 //得到完整的文件名 18 NSString *filename=[plistPath1 stringByAppendingPathComponent:@"test.plist"]; 19 //输入写入 20 [data writeToFile:filename atomically:YES]; 21 22 //那怎么证明我的数据写入了呢?读出来看看 23 NSMutableDictionary *data1 = [[NSMutableDictionary alloc] initWithContentsOfFile:filename]; 24 NSLog(@"%@", data1); 25 26 27 // Do any additional setup after loading the view, typically from a nib. 28}

**
在获取到自己手工创建的plistdemo.plist数据后,在这些数据后面加了一项内容,证明输入写入了。**

怎么证明添加的内容写入了呢?下面是打印结果:

**
**

代码地址:https://github.com/schelling/YcDemo/tree/master/PlistDemo

著作权声明:本文由http://blog.csdn.net/totogo2010/原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

点赞
收藏

评论区

加载中...

相关推荐

IOS定位服务的应用

IOS定位服务的应用一、授权的申请与设置在IOS8之后,IOS的定位服务做了优化,若要使用定位服务,必须先获取用户的授权。首先需要在info.plist文件中添加一个键:NSLocationAlwaysUsageDescription或者NSLocationWhenInUseUsageDescription。其中NS

unity sharesdk 采坑

sharesdk ios下打包后点击分享无响应,解决方法:1.确认一下info.plist文件的URLSchemes是否正确 qqweixinweChat的appkey都要添加数字是16进制的2.导入SDK的时候从官方下载IOS版本的SDK而不是导入unitypackage里面自带的,3.打开后图标名字显示的是英

IOS数据存储之NSUserDefaults

概述数据存储是开发中必不可少的一个功能,我们可以通过Sqlite数据库手动创建数据库,定义数据表;可以使用IOS的数据框架CoreData,更方便的操作数据库;也可以直接读写文件系统;这里将介绍另外一种常用的方法:使用NSUserDefaults类,以字典形式保存数据,IOS会自动把字典中的键值对转换成对应的XML文件(也就是plist文件),这

IOS企业证书web安装

plist文件要放在https下随便找一个git的即可plist<?xmlversion"1.0"encoding"UTF8"?<!DOCTYPEplistPUBLIC"//Apple//DTDPLIST1.0//EN""http://www.apple.com/DTDs/PropertyList1.0

The application does not contain a valid bundle identifier.解决方法

博主是在删除某第三方库后报此错误①首先Targetinfo.plist文件中bundleidentifier是否正确!输入图片说明(https://static.oschina.net/uploads/img/201704/12141820_zuX1.png"在这里输入图片标题")②如果配置都正确清理Xcode缓存文件点击小箭头直接删

IOS学习笔记

读取plist:// 获取文件路径。NSString path  NSBundle mainBundle pathForResource:@"plistDemo" ofType:@"plist";// 读取文件  NSMutableDictionary data  NSMutableDiction

iOS学习之 plist文件的读写 - HelloWorld