ios开发入门- plist 文件读写

本章目标:  plist 文件的读写操作

在xcode中创建一个项目 会在supportion files 目录下 看见一个已plist后缀类型的文件,这个文件 是以 key value 存放的键 值对的值。它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。plist文件是标准的xml格式的。  我们在日常开发中 可以用它 来存储 一些系统的 的用户信息,系统的配置信息等。

本章 我们来看看plist 文件是 如何读写的

在具体操作之前我们来先了解下几个专业的名词 :

NsBundler 主束 束是一个特定的文件夹类型,其中的内容遵循特定的结构,应用程序喝框架都是束, NsBundler 一个主要的作用是获取添加到项目的Resoureces文件加的资源。

NSDictionary 字典 就是key-value对的集合。key是字符串(NSString),value是对象指针。

启动Xcode 创建一个名为”HelloWord“新项目:界面模板选择为 single view appliction ,不会创建的同学 去看上一章喔  项目信息填写如下图。填写完成后 选择项目保存位置

在Supporting Files 目录下 创建一个新文件  一个新的Plist 文件

Supporting files -> new file  -> ios -> Resourece -> Property List 

如图 :

ios开发入门- plist 文件读写_第1张图片



创建后命名为 citys 并保存  改文件会出现在 Supporting Files 目录下面

打开他 并添加 值 如图 :

ios开发入门- plist 文件读写_第2张图片


 该文件 在后面的 源码中有 , 各位童鞋 可以去下载 节省下载时间

在本章里面 我们 没用到界面 所有数据 在 日志中查看


下面看代码

   //创建主束  

    NSBundle *bundle=[NSBundle mainBundle];

//读取plist文件路径

NSString *path=[bundle pathForResource:@"citys" ofType:@"plist"];

//读取数据到 NsDictionary字典中 

NSDictionary *dictionary=[[NSDictionary alloc]initWithContentsOfFile:path];

NSLog(@"size is %d",[dictionary count]); 

//NSLog(@"data is %@",dictionary); 

NSArray *array=[dictionary allKeys];

// 循环输出字典中的  data 数据 

for(id key in dictionary)


{

NSArray *arrays=[dictionary objectForKey:key];

for(int i=0;i<[arrays count];i++){

NSLog(@"key: %d,value: %@",i,[arrays objectAtIndex:i]);

}

}

把上面的代码添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法中


保存运行 ,各位童鞋 就可以看到 log 控制台中看到 输出的数据了。 如下

iphone_Sample_PlistReadAndWrite[864:f803] key: 0,value: 广州

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 1,value: 深圳

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 2,value: 肇庆

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 3,value: 佛山

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 4,value: 东莞

2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWri。。。。。。。 省略


有一句话叫做三人行必有我师,其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群681503716,请备注编号《晨》,大牛欢迎入驻,正在求职的也可以加入,大家一起交流学习,话糙理不糙,互相学习,共同进步,一起加油吧。)


在我们平时的手机开发中需要保存一些用户数据,操作数据。 plist 可以算是其中的一种方法了,下面我们来看看 plist 文件的写操作。

程序继续沿用上面的程序

在 ios中要写入数据 ,那我们的数据 保存在哪儿呢, 是沙盒, 每个程序的数据只能保存在沙盒中, 同样我们的数据 也是保存在沙盒中。 少废话了 ,直接看代码

//plist write

//创建一个可变长度的NSMutableDictionary 对象 该对象专门用于存储数据的

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

//添加数据

[data setObject:@"one" forKey:@"1"];

[data setObject:@"two" forKey:@"2"];

[data setObject:@"three" forKey:@"3"];

[data setObject:@"four" forKey:@"4"];

//要往沙盒中写数据当然要先取的沙盒目录啦

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

NSString *plistPaht=[paths objectAtIndex:0];

//取得完整的文件名

NSString *fileName=[plistPaht stringByAppendingPathComponent:@"textdeom.plist"];

NSLog(@"fileName is%@",fileName);

//创建并写入文件

[data writeToFile:fileName atomically:YES];

//检查是否写入

NSMutableDictionary *writeData=[[NSMutableDictionary alloc]initWithContentsOfFile:fileName];

NSLog(@"write data is :%@",writeData);

上面我们创建了一个NSMutableDictionary 可变长度的字典,并添加元素,然后在写入沙盒中,最后并重新读取出来,  这一章涉及了 沙盒的 内容,大家 先了解这里,后面我们会再讲沙盒的

上面的代码添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

保存运行程序 效果如下 :

ios开发入门- plist 文件读写_第3张图片


 运行程序会输出 沙盒的地址 ,和我们程序给 给 plist 写入的 值

好了 这一章就到这里, 欢迎 各位童鞋 拍砖 。

你可能感兴趣的:(ios开发入门- plist 文件读写)