文档章节

iOS 对plist增改操作

哥特复心
 哥特复心
发布于 2014/05/10 16:09
字数 489
阅读 5015
收藏 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 APP上传出错 多语言启动画面

xcode 6.1 ios 7.0 以上运行 Launch Images Source Use Asset Catalog 如果这里用 Launch Images Source LaunchImage (.xcassets里的) 那么,多语言就用问题 .plist 文件没有 Launch Images ......

viphotman
2015/01/06
3K
1
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
quick-cocos2d-x图片资源加密(续)

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

SunLightJuly
2014/01/03
0
4

没有更多内容

加载失败,请刷新页面

加载更多

我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
42分钟前
11
0
Python程序员需要知道的30个技巧

1 直接交换两个数字位置 1x, y = 10, 202print(x, y)3x, y = y, x4print(x, y)5#1 (10, 20)6#2 (20, 10) 2 比较运算符的链接 1n = 102result = 1 < n < 203print(result)4# True5result = 1 ......

糖宝lsh
42分钟前
7
0
[LintCode] Linked List Cycle(带环链表)

描述 给定一个链表,判断它是否有环。 样例 给出 -21->10->4->5, tail connects to node index 1,返回 true。 这里解释下,题目的意思,在英文原题中,tail connects to node index 1 表示的...

honeymose
53分钟前
8
0
Android :报错Your project path contains non-ASCII characters.

报错内容如下 Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See ht......

lanyu96
今天
7
0
Nginx平滑添加模块

Nginx已经编译安装并运行了一段时间, 然后某一天, 发现需要用到某个模块但当初没有编译, 这个时候怎么办呢? 卸载重新安装肯定可以的, 如果Nginx版本没有变更的话, 则有一个相对平滑的方法来添...

老菜鸟0217
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部