IOS 对plist文件的读写

2024-06-19 01:58
文章标签 读写 ios plist

本文主要是介绍IOS 对plist文件的读写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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


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

1、首先新建一个项目LTReadWritePlist,项目创建好以后,系统会默认创建一个plist文件,
     我们创建的工程中,plist文件是在Supporting Files下面的LTReadWritePlist-Info.plist,打开显示如下:


在编辑器中显示的形式与表格类似,另外也可以使用Source code形式打开,打开plist是xml格式的。

2、创建plist文件,

  选中工程中的Supporting Files,右键点击,选择Add File to "工程名",
  在iOS下面的Resource中选择Property List,创建一个school.plist的文件,
  打开新创建的文件,显示如下:


点击Key 下面的Root后面的加号,添加一个数据,同时修改Type为Dictionary,然后在下面添加数据,添加完成以后数据显示如下图:


3、读取plist文件数据

读取代码如下:

 /*对plist文件的读*/NSString *plistPath=[[NSBundle mainBundle] pathForResource:@"schoolinfo" ofType:@"plist"];NSMutableDictionary *data=[[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];NSLog(@"%@",data);/*读取数据结束*/

显示如下:


想schoolinfo.plist中追加数据,代码如下:

//在plist中追加写入数据[data setObject:@"20" forKey:@"count"];[data writeToFile:plistPath atomically:YES];//保存
追加数据以后显示如下:


4、创建与写plist文件

代码如下(data数据接上):

 /*保存数据一*//*新建一个plist*///获取应用程序沙盒的Documents目录NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString *newplistPath = [paths objectAtIndex:0];//得到完整的文件名NSString *filename=[newplistPath stringByAppendingPathComponent:@"task.plist"];//保存数据[data writeToFile:filename atomically:YES];/*保存数据一结束*///将保存的数据读出来NSMutableDictionary *data1 = [[NSMutableDictionary alloc] initWithContentsOfFile:filename];NSLog(@"%@", data1);

5、创建string类型plist

代码如下:

/*写入string数据*///获取路径对象NSArray *path1=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentpath=[path1 objectAtIndex:0];NSString *stringplistpath=[documentpath stringByAppendingPathComponent:@"stringinfo.plist"];NSMutableDictionary *dicplist=[NSMutableDictionary dictionary];//设置属性[dicplist setObject:@"20" forKey:@"age"];[dicplist setObject:@"male" forKey:@"sex"];[dicplist setObject:@"sports" forKey:@"hobby"];//写入文件[dicplist writeToFile:stringplistpath atomically:YES];/*结束写入string数据*/

6、创建Dictionary类型plist

    /*创建并写入Dictionary键值plist*/NSArray *path2=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentpath2=[path2 objectAtIndex:0];NSString *dicplistpath=[documentpath2 stringByAppendingPathComponent:@"dicinfo.plist"];NSMutableDictionary *rootdicplist=[NSMutableDictionary dictionary];//定义第一个Dictionary集合NSMutableDictionary *child1plist=[NSMutableDictionary dictionary];[child1plist setObject:@"25" forKey:@"age"];[child1plist setObject:@"female" forKey:@"sex"];[child1plist setObject:@"basketball" forKey:@"hobby"];//添加到根集合中[rootdicplist setObject:child1plist forKey:@"xiaohua"];//定义第二个Dictionary集合NSMutableDictionary *child2plist=[NSMutableDictionary dictionary];[child2plist setObject:@"23" forKey:@"age" ];[child2plist setObject:@"male" forKey:@"sex" ];[child2plist setObject:@"football" forKey:@"hobby" ];[rootdicplist setObject:child2plist forKey:@"xiaozhang"];//写入文件[rootdicplist writeToFile:dicplistpath atomically:YES];/*结束创建并写入Dictionary键值plist*/

7、修改string类型plist

代码如下:

 /*对string plist文件的修改*/NSArray *changepath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *changestringpath=[changepath objectAtIndex:0];NSString *endchangepath=[changestringpath stringByAppendingPathComponent:@"stringinfo.plist"];NSMutableDictionary *mutablestring=[[NSMutableDictionary alloc] initWithContentsOfFile:endchangepath];NSString *age=[mutablestring objectForKey:@"age"];age=@"27";[mutablestring setObject:age forKey:@"age"];[mutablestring writeToFile:endchangepath atomically:YES];[mutablestring release];/* end 对string plist文件的修改*/

8、修改Dictionary类型plist

/*对Dictionary plist文件的修改*/NSString *changedicpath=[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"dicinfo.plist"];NSMutableDictionary *dicinfolist=[[NSMutableDictionary alloc] initWithContentsOfFile:changedicpath];//获取小张的信息NSMutableDictionary *dicuser=[dicinfolist objectForKey:@"xiaozhang"];[dicuser setObject:@"female" forKey:@"sex"];[dicinfolist setObject:dicuser forKey:@"xiaozhang"];[dicinfolist writeToFile:changedicpath atomically:YES];

示例下载地址:下载



这篇关于IOS 对plist文件的读写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073689

相关文章

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

C# 读写ini文件操作实现

《C#读写ini文件操作实现》本文主要介绍了C#读写ini文件操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、INI文件结构二、读取INI文件中的数据在C#应用程序中,常将INI文件作为配置文件,用于存储应用程序的

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

10. 文件的读写

10.1 文本文件 操作文件三大类: ofstream:写操作ifstream:读操作fstream:读写操作 打开方式解释ios::in为了读文件而打开文件ios::out为了写文件而打开文件,如果当前文件存在则清空当前文件在写入ios::app追加方式写文件ios::trunc如果文件存在先删除,在创建ios::ate打开文件之后令读写位置移至文件尾端ios::binary二进制方式

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

关于使用cspreadsheet读写EXCEL表格数据的问题

前几天项目有读写EXCEL表格的需求,我就找了大概有几种,大致分为:COM方法、ODBC方法、OLE方法、纯底层格式分析方法。由于COM方法要求必须安装有OFFICE的EXCEL组件,纯底层格式分析方法又很多功能需要自行去完善,所有最终选择了数据库的方法,用数据库的方法去存取xls格式的数据。网上有一个高手写的CSpreedSheet,看了一下提供的接口,感觉挺好用的。在使用的过程中发现几个