文档章节

iOS 对plist增改操作

哥特复心
 哥特复心
发布于 2014/05/10 16:09
字数 489
阅读 5009
收藏 2

这篇文章是自己通过实践获取,在网上查过很多资料,也走了不上的弯路,由于刚开始学子不久,只是把自己遇到的问题贡献给大家

一,创建文件

//获取路径对象

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

//获取完整路径

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"test.plist"];

NSMutableDictionary *dictplist = [[NSMutableDictionary alloc ] init];

//设置属性值

[dictplist setObject:@"张三" forKey:@"name"];

[dictplist setObject:@"李四" forKey:@"name1"];

[dictplist setObject:@"王五" forKey:@"name2"];

//写入文件

[dictplist writeToFile:plistPath atomically:YES];

这个是创建了一个简单的plist文件,创建后的图1为: 在此输入图片描述

下面是创建了一种多键值的plist文件,代码和图如下:

//获取路径对象

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  

//获取完整路径

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"test.plist"];

NSMutableDictionary *dictplist = [[NSMutableDictionary alloc ] init];

//定义第一个插件的属性

NSMutableDictionary *plugin1 = [[NSMutableDictionary alloc]init];

[plugin1 setObject:@"张三" forKey:@"name1"];

[plugin1 setObject:@"李四" forKey:@"name2"];

//定义第二个插件的属性

NSMutableDictionary *plugin2 = [[NSMutableDictionary alloc]init];

[plugin2 setObject:@"王五" forKey:@"name1"];

[plugin2 setObject:@"赵斌" forKey:@"name2"];

//设置属性值

[dictplist setObject:plugin1 forKey:@"初一班"];

[dictplist setObject:plugin2 forKey:@"初二班"];

//写入文件

[dictplist writeToFile:plistPath atomically:YES];

图2: 在此输入图片描述

针对图1进行修改的程序,代码如下:

NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)       objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"];    

NSMutableDictionary *applist = [[[NSMutableDictionary alloc]initWithContentsOfFile:path]mutableCopy];    

NSString *name = [applist objectForKey:@"name"];    

name = @"山山";   

[applist setObject:name forKey:@"name"];

[applist writeToFile:path atomically:YES];

执行后如下图:

在此输入图片描述

针对图2进行修改的程序,代码如下:

  [dictplist writeToFile:plistPath atomically:YES];

NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"];



//根据路径获取test.plist的全部内容

NSMutableDictionary *infolist= [[[NSMutableDictionary alloc]initWithContentsOfFile:path]mutableCopy];





//获取初一班的信息

NSMutableDictionary *info = [infolist objectForKey:@"初一班"];



NSString *name1 = [info objectForKey:@"name1"];



name1 = @"山山";



[info setValue:name1 forKey:@"name1"];

[infolist setValue:info forKey:@"初一班"];

[infolist writeToFile:path atomically:YES];

图如下: 在此输入图片描述

以上两个修改信息的地方,必须要加入红色标记的方法,才能在表里进行增改操作。

以上是个人的学习心得,请大家多多指教。

© 著作权归作者所有

共有 人打赏支持
哥特复心
粉丝 109
博文 68
码字总数 40593
作品 0
长沙
高级程序员
iOS 6.0旋转兼容的那点事

这两天问答系统里,问ios横竖屏切换、还有状态栏旋转的问题有点多,来些小心得,希望遇到的人少走弯路; 先贴官方说明: iOS 6.0 Release Notes: Autorotation is changing in iOS 6. In iOS...

董桉远
2013/04/07
0
1
dropbox 死掉后 IOS 7.1 应用发布替代解决方案

由于大家都知道的原因Dropbox 挂掉了,免费的 https文件分享链接没有了,广大通过 dropbox https 分享链接来发布ios应用的童鞋悲剧了 。今天就给大家支个招儿。 分析 ios 7.1 安装链接 格式 ...

LuoZhihui
2014/07/11
0
0
iOS使用Objective-c自定义cordova插件(二)

接上一章. 中还有其它的配置、、、以及配置文件. eg: 框架: <framework src="CFNetwork.frame" weak="true"/> plist文件: <resource-file src="src/ios/PushConfig.plist"/> 默认的info.plis......

Michaelyn
2017/10/23
0
0
IOS之Info.plist文件简介

元信息简介 为了提供更好的用户体验,IOS 和 OS X的每个app或bundle都依赖于特殊的元信息(meta Information). 元信息有多种用途,包括 直接向用户展示信息 系统内部用来标识你的app或其支持的...

big军
2013/01/23
0
3
quick-cocos2d-x图片资源加密(续)

前篇: quick-cocos2d-x图片资源加密 让quick-cocos2d-x支持加密的plist文件 通过前篇的修改,我们已经能够在Windows平台的player,以及Android上使用加密的常见格式(png、jpg等)的图片资源了...

SunLightJuly
2014/01/03
0
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Go语言_通神之路(2)

1、包 每个Go程序都是由包构成,从main包开始运行,就是我上一篇讲到的,都是从main函数开始执行,但是必须在main包下面! package mainimport ( "fmt" "math/rand")func ...

木九天
昨天
2
0
51.php-fpm的pool 慢日志 open_basedir 进程管理

12.21 php-fpm的pool 12.22 php-fpm慢执行日志(测试时报错) 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool: php-fpm里的pool也叫池子,咱们之前加入过www的配置,这个w...

王鑫linux
昨天
0
0
java内存模型概述

1、Java虚拟机运行时数据分区图 程序计数器:线程私有,是一块较小的内存空间,它是当前线程所执行的字节码文件的行号指示器 java虚拟机栈:线程私有,其生命周期与线程相同,这也就是我们平...

京一
昨天
0
0
shell学习之test语法

因为if-then语句不能测试退出状态码之外的条件,所以提供了test, 如果test命令中列出的条件成立,test命令就会退出并返回退出状态码0;如果条件不成立,test命令就会退出并返回非零的退出状态...

woshixin
昨天
0
0
openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK的项目 链接...

汉斯-冯-拉特
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部