iOS开发-plist文件增删改查
plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件。扩展名为.plist,因此被称为 plist文件,xCode中默认的是一种树状的结构展现出来数据,可视化的动态增删改查,非常人性化,不过最终的结果是以XML形式存储的,Plist文件可以用于存储用户的一些设置信息,具体根据需求而定。
简单创建文件
简单创建文件就是说可以直接从xCode创建,右击项目new File,可以添加一个plist文件:
创建一个UserData.plist文件,之后的内容如下:
右击open as->source code,代码如下:
<?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"><dict><key>Login</key><dict><key>UserName</key><string>FlyElephant</string><key>UserPassWord</key><string>123456</string></dict></dict>
</plist>
读取设置的信息:
//读取Property List文件NSString *userDataPath = [[NSBundle mainBundle] pathForResource:@"UserData" ofType:@"plist"];NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:userDataPath];NSLog(@"%@",data);NSLog(@"用户名:%@ 密码:%@", data[@"Login"][@"UserName"],data[@"Login"][@"UserPassWord"]);[data setObject:@"登录信息" forKey:@"Login"];
增删改查
文件添加,上面是应用程序中添加文件,这个时候可以选择代码在沙盒中添加,代码如下:
NSArray *sandboxpath= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);//获取完整路径NSString *documentsDirectory = [sandboxpath objectAtIndex:0];NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"sandbox.plist"];//存储根数据NSMutableDictionary *rootDic = [[NSMutableDictionary alloc ] init];//字典中的详细数据NSMutableDictionary *userDataDic = [[NSMutableDictionary alloc]init];[userDataDic setObject:@"Flephant" forKey:@"UserName"];[userDataDic setObject:@"http://www.cnblogs.com/xiaofeixiang/" forKey:@"UserPassWord"];[rootDic setObject:userDataDic forKey:@"Login"];//写入文件[rootDic writeToFile:plistPath atomically:YES];NSLog(@"%@",NSHomeDirectory());NSLog(@"写入成功");
路径如下,具体路径获取上一篇文章已经可以看到:
读取数据:
//获取路径NSArray *sandboxpath= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *filePath = [[sandboxpath objectAtIndex:0] stringByAppendingPathComponent:@"sandbox.plist"];NSLog(@"%@",NSHomeDirectory());//获取数据NSMutableDictionary *searchdata = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];NSLog(@"%@",searchdata);
修改文件:
//获取路径NSString *filepath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"sandbox.plist"];//所有的数据列表NSMutableDictionary *datalist= [[[NSMutableDictionary alloc]initWithContentsOfFile:filepath]mutableCopy];//获取Login节点NSMutableDictionary *loginData = [datalist objectForKey:@"Login"];[loginData setValue: @"FlyElephant" forKey:@"UserName"];[loginData setValue: @"123456" forKey:@"UserPassWord"];[datalist setValue:loginData forKey:@"Login"];[datalist writeToFile:filepath atomically:YES];NSLog(@"修改成功");
删除文件:
NSFileManager *manager=[NSFileManager defaultManager];//文件路径NSString *filepath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"sandbox.plist"];if ([manager removeItemAtPath:filepath error:nil]) {NSLog(@"文件删除成功");}
iOS开发-plist文件增删改查相关推荐
- java File 读取本地文件 增删改查
java 读取本地文件 增删改查 这里删除不做删除,只是对文件进行重命名,只是物理意义不可见,实际存在 用的jfinal框架 /*** 列出指定路径的文件* @param path 路径* @retu ...
- mock模拟的数据能增删改查吗_Mock.js模拟数据,脱离后端独立开发,实现增删改查功能...
在目前容近对端手近对端手近对端手近对端手近我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于 ...
- android增删功能代码,Android Studio开发实战 之 增删改查
增删改查是一个应用最基础的操作,增删改查的流程走通了,下面的路程也就顺利多了.现在使用Android Studio开发一个简单的应用,该应用就实现了增删改查的操作,看似简单,到底简不简单呢,下面开始操 ...
- 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用
2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Dri ...
- python 文件修改记录_python基础-文件增删改查
对指定文件haproxy.conf的backend www.oldboy1.org进行增删改查.文件内容如下 global log 127.0.0.1 local2 daemon maxconn 25 ...
- 微信小程序云开发.云数据库.增删改查SDK
首页头部模块 海报轮播模块 球队导航模块 NBA新闻 网络API接口,用wx.request请求,成功后用setData接收数据,在wxml中用wx.for循环输出 自定义组件 即自定义标签 定义后在 ...
- 巨杉数据库SequoiaDB在Java开发中的增删改查CURD
文章目录 JSON应用开发 增删改查操作 1 快速入门 1.1 环境部署 部署SequoiaDB集群环境 部署Windows开发环境 1.2 正式开始 2 CURD教程 2.1 Java开发环境搭建 ...
- Linux下文件增删改查定位压缩操作与权限所属用户
[1]zip/unzip压缩/解压文件 zip命令: zip(选项)(参数) zip -r 文件名字 ./[.代表当前目录] -x filename[不需要压缩的文件名] 选项: -A:调整可执行的自 ...
- sql语句ding_SQL语句映射文件增删改查、参数、缓存
!!注意把括号换成尖括号...... 2.2 select Xml代码 <!-- 查询学生,根据id --> <select id="getStudent" pa ...
最新文章
- 【Flutter】遇见错误
- Qt中QTableWidget用法总结
- 宝典计算机网络部分,计算机网络复习相关知识点宝典
- 财务一体化项目,进度与计划31
- idea中怎么新建vue项目_项目中使用vue-awesome-swiper
- 关于Vector,map等迭代器问题
- ubunntu安装php7.0_乌班图Ubuntu 16.04下安装PHP 7过程详解
- ax200黑苹果蓝牙驱动_家庭网络升级计划篇一:将无线进行到底,AX200网卡升级体验...
- 小球碰撞(面向对象)
- 基于流量数据,我们深挖了这家史上增长最快的SaaS公司
- ERROR 1018 (HY000): Can‘t read dir of ‘.‘ (errno: 13 - Permission denied)
- 成功解决TypeError: only size-1 arrays can be converted to Python scalars
- FlashFXP用到的功能
- Android照片处理——涂鸦和拼图实现
- Mybatis-9.28
- 英雄联盟LOL用什么语言写的?
- 华为机试在线训练-牛客网(20)【中级】字符串运用-密码截取
- flex trace无法使用
- 医学图像——医学坐标体系
- 再谈 Go 语言在前端的应用前景
热门文章
- 大数据、机器学习与深度学习类命令行工具汇总
- 消息中间件-Activemq之Broker-Cluster
- Redhat EL 5.3上安装Cacti(4)- 编译安装rrdtool及安装配置snmp
- 2020下半年新机最新消息_2020年下半年即将发布的手机,你们期待吗
- 5G NGC — eNS(增强的网络切片)
- 5G NGC — PCF 策略控制功能
- 嵌入式Linux教程一:安装Ubuntu并进行基本配置、交叉编译环境和Minicom
- SSM 实现支付宝支付功能(图文详解+完整代码)
- python - 异常处理
- 机器学习基础 --- pandas的基本使用