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文件增删改查相关推荐

  1. java File 读取本地文件 增删改查

    java 读取本地文件 增删改查 这里删除不做删除,只是对文件进行重命名,只是物理意义不可见,实际存在 用的jfinal框架 /*** 列出指定路径的文件* @param path 路径* @retu ...

  2. mock模拟的数据能增删改查吗_Mock.js模拟数据,脱离后端独立开发,实现增删改查功能...

    在目前容近对端手近对端手近对端手近对端手近我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于 ...

  3. android增删功能代码,Android Studio开发实战 之 增删改查

    增删改查是一个应用最基础的操作,增删改查的流程走通了,下面的路程也就顺利多了.现在使用Android Studio开发一个简单的应用,该应用就实现了增删改查的操作,看似简单,到底简不简单呢,下面开始操 ...

  4. 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用

    2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Dri ...

  5. python 文件修改记录_python基础-文件增删改查

    对指定文件haproxy.conf的backend www.oldboy1.org进行增删改查.文件内容如下 global log 127.0.0.1 local2 daemon maxconn 25 ...

  6. 微信小程序云开发.云数据库.增删改查SDK

    首页头部模块 海报轮播模块 球队导航模块 NBA新闻 网络API接口,用wx.request请求,成功后用setData接收数据,在wxml中用wx.for循环输出 自定义组件 即自定义标签 定义后在 ...

  7. 巨杉数据库SequoiaDB在Java开发中的增删改查CURD

    文章目录 JSON应用开发 增删改查操作 1 快速入门 1.1 环境部署 部署SequoiaDB集群环境 部署Windows开发环境 1.2 正式开始 2 CURD教程 2.1 Java开发环境搭建 ...

  8. Linux下文件增删改查定位压缩操作与权限所属用户

    [1]zip/unzip压缩/解压文件 zip命令: zip(选项)(参数) zip -r 文件名字 ./[.代表当前目录] -x filename[不需要压缩的文件名] 选项: -A:调整可执行的自 ...

  9. sql语句ding_SQL语句映射文件增删改查、参数、缓存

    !!注意把括号换成尖括号...... 2.2 select Xml代码 <!-- 查询学生,根据id --> <select id="getStudent" pa ...

最新文章

  1. 【Flutter】遇见错误
  2. Qt中QTableWidget用法总结
  3. 宝典计算机网络部分,计算机网络复习相关知识点宝典
  4. 财务一体化项目,进度与计划31
  5. idea中怎么新建vue项目_项目中使用vue-awesome-swiper
  6. 关于Vector,map等迭代器问题
  7. ubunntu安装php7.0_乌班图Ubuntu 16.04下安装PHP 7过程详解
  8. ax200黑苹果蓝牙驱动_家庭网络升级计划篇一:将无线进行到底,AX200网卡升级体验...
  9. 小球碰撞(面向对象)
  10. 基于流量数据,我们深挖了这家史上增长最快的SaaS公司
  11. ERROR 1018 (HY000): Can‘t read dir of ‘.‘ (errno: 13 - Permission denied)
  12. 成功解决TypeError: only size-1 arrays can be converted to Python scalars
  13. FlashFXP用到的功能
  14. Android照片处理——涂鸦和拼图实现
  15. Mybatis-9.28
  16. 英雄联盟LOL用什么语言写的?
  17. 华为机试在线训练-牛客网(20)【中级】字符串运用-密码截取
  18. flex trace无法使用
  19. 医学图像——医学坐标体系
  20. 再谈 Go 语言在前端的应用前景

热门文章

  1. 大数据、机器学习与深度学习类命令行工具汇总
  2. 消息中间件-Activemq之Broker-Cluster
  3. Redhat EL 5.3上安装Cacti(4)- 编译安装rrdtool及安装配置snmp
  4. 2020下半年新机最新消息_2020年下半年即将发布的手机,你们期待吗
  5. 5G NGC — eNS(增强的网络切片)
  6. 5G NGC — PCF 策略控制功能
  7. 嵌入式Linux教程一:安装Ubuntu并进行基本配置、交叉编译环境和Minicom
  8. SSM 实现支付宝支付功能(图文详解+完整代码)
  9. python - 异常处理
  10. 机器学习基础 --- pandas的基本使用