文档章节

iOS 对plist增改操作

哥特复心
 哥特复心
发布于 2014/05/10 16:09
字数 489
阅读 5014
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
30
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部