iOS开发-plist文件的常用操作
什么是plist文件
plist文件,全名为Property List,顾名思义,即为属性列表文件,因其后缀名为.plist,所以通常被叫做plist文件,这是一种用来存储序列化后的对象的文件,在iOS中通常被用来存储用户设置或者一些常用却不常改变的少量数据。
一、创建plist文件
1.在开发工具或文件夹中通过新建文件的方式创建
在Xcode中使用快捷键 command+n 或者鼠标点击File->New->File,选择iOS->Resource->Property List(如图1):
给文件命名:
注意:plist文件的名称不能使用info.plist、Info.plist、XXXInfo.plist等类似名称,否则容易与项目中其他配置文件重名造成错误
生成的文件:
生成好plist文件之后,单击文件名,可以在右侧对该文件进行操作,可以看到,一共有三列,对应文件中对象的每一行的三个属性,key(键)、type(值的类型)、value(值),type共有7种类型,其中两种为Dictionary(字典)和Array(数组),这两种类型可以互相包含同时可以包含其它5种类型和本身类型的key-value(键值对)(Array类型包含的键值对只有value生效,key默认为item0、item1…),其余5种分别为,Boolean(布尔值,YES和NO)、Data(二进制数据)、Date(时间,2020-06-15T06:53:25Z)、Number(数值)、String(字符串)。
如果你创建的plist文件的文件名为Info.plist等,则会被默认为配置文件,则Root行,即对象的最外层只能为Dictionary类型:
2、代码方式创建plist文件
- 创建沙盒路径
// 本地沙盒路径列表
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
// 获取沙河路径
NSString* plistPath = [paths objectAtIndex:0];
// 拼接完整路径
NSString* fileName = [plistPath stringByAppendingPathComponent:@"test.plist"];
- 创建数据
NSMutableDictionary *muDic = [[NSMutableDictionary alloc] init];
[muDic setObject:@"zhangsan" forKey:@"name"];
[muDic setObject:@"12" forKey:@"age"];
- 写入plist文件
[newsDict writeToFile:plistPath atomically:YES];
二、读取plist文件
1.获取文件路径
- 使用新建文件的方式创建的plist文件,需通过文件名获取其路径:
// 通过文件名获取完整路径
NSString* fileName1 = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"];
// 获取数据
NSArray* array = [[NSArray alloc] initWithContentsOfFile:fileName1];
- 使用代码方式创建的plist文件,通过完整路径查找:
// 本地沙盒路径列表
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
// 获取沙河路径
NSString* plistPath = [paths objectAtIndex:0];
// 拼接完整路径
NSString* fileName2 = [plistPath stringByAppendingPathComponent:@"test.plist"];
// 获取数据
NSDictionary* dict = [[NSDictionary alloc] initWithContentsOfFile:fileName2];
三、添加和修改数据
注意:通过直接创建文件的方式创建的plist文件是只读的,只能在开发工具或者程序中手动修改,无法通过代码修改其数据,如要修改,需将该plist文件复制到沙盒中再进行修改,但原来的plist文件内容不变,如果想使用修改后的plist文件,只能使用沙盒中的那一个
直接创建的plist文件多数情况下数据不会进行修改,故下面只展示使用代码创建的plist文件修改和添加数据的方式
- 获取路径
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* plistPath = [paths objectAtIndex:0];
NSString* fileName2 = [plistPath stringByAppendingPathComponent:@"test.plist"];
- 获取数据
NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithContentsOfFile:fileName2];
- 修改或添加数据
[dict setObject:@"man" forKey:@"sex"];
- 写入文件
[dict writeToFile:fileName2 atomically:YES];
以上就是plist文件常用的操作,其他直接操作文件的代码属于NSFileManager的范畴,此篇不再赘述。
iOS开发-plist文件的常用操作相关推荐
- iOS开发-plist文件增删改查
plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plis ...
- c#文件夹常用操作,属性设置,遍历、压缩
全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#文件夹常用操作,属性设置,遍历.压缩 1.文件夹属性设置 c#使用设置文件夹属性,将文件夹设置为隐藏的.系统的.只读的. 测试代码 static ...
- python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
一.创建excel代码 备注:封装好了(可直接调用) """ -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :J ...
- 第八章节 文件操作一 (文件夹常用操作)
1.文件夹常用操作 1.文件夹管理是操作系统的重要组成部分,主要包括移动.复制.创建.删除等操作. 2. .NET提供了Directory类和DirectoryInfo类用于对磁盘和文件夹进行常用操作 ...
- iOS 技术 info.plist文件的常用配置总结
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- IOS之plist文件
一.什么是plist文件: plist文件:Property List文件的简称,用于存放数组或者字典等的文本文件.IOS经常使用其存放用户信息,app信息等,如:info.plist文件. 二.pl ...
- 【iOS】iOS开发之使用Mac自动操作制作@1x@2x@3x图片(切图)
iOS开发中,会要求导入@1x.@2x和@3x: 使用@1x格式:iPhone3GS 使用@2x格式:iPhone 4,4S,5,5S,5C,SE,6,6S,7,8,XR 使用@3x格式:iPhone ...
- iOS开发中对于一些常用的相对路径(持续更新)
1.iOS开发的证书的描述文件放置地点 ~/Library/MobileDevice/Provisioning Profiles 2.$(SRCROOT)代表的是这个项目文件夹所在的位置 $(PR ...
- Excel-VBA 快速上手(五、工作簿对象、Excel 文件的常用操作)
文章目录 一.工作簿对象 1.1 获取 Excel 文件对应的工作簿对象 二.工作簿对象操作 Excel 的常见用法 2.1. 新建并打开 Excel 文件 2.2. 关闭 Excel 文件 2.3. ...
- IOS对plist配置文件的读写操作
读取: --------------------------------------------------------------- //首先读取studentInfo.plist中的数据 NSSt ...
最新文章
- 客户资料查询传递数据格式
- Android RecycleView ScrollBy不生效
- python适合零基础学习吗-零基础能学好Python吗?哪些人更适合学习?
- 微信小程序 - 更改radio和checkbox选中样式
- 结构体中的自然对界法则
- 从特殊到一般-C#中的类
- linux下sqlite3的应用
- Java基础学习总结(186)—— GraalVM 是 Java 在云原生时代保持强大竞争力的大杀器吗
- 关于Java的静态初始化块
- AcWing 240. 食物链
- 虚拟机装打印服务器,蜗牛矿渣装机教程 篇五:PVE虚拟机下OPENWRT如何安装USB打印机P1106...
- 【教程】PE烧录上位机软件安装
- 怎么调整图片大小?这三种方法一定能帮到你
- unix 创建html文件路径,Btrfs 创建目录和文件的操作
- php 红包过期退回,RabbitMQ功能实现1- 红包未领取退回
- html自动循环播放视频列表
- 什么是 CSDN ?
- 服务器渠道销售和终端销售,终端销售与渠道销售相比哪个更有优势?
- 小春日记 - 基金初识
- 科凯计支宝免加密狗版本下载-公路计量支付软件免费下载—公路计量软件
热门文章
- Linux远程服务器环境搭建
- 程序员内功:八大排序算法
- 美团O2O广告营销中的机器学习技术
- RoadRunner软件初步使用教程
- mysql_sniffer安装
- mysql及格率公式_关于mysql进行名次的排名和计算及格率的分享
- ES3、ES4、ES5、ES6区别
- 【自学Flutter】20.3 ListView.separated 的使用
- python实现求两个数的最大公因数
- c语言乒乓球对手算法,乒乓球学生论文,关于例c语言教学案例设计相关参考文献资料-免费论文范文...