美文网首页
【iOS】操作plist

【iOS】操作plist

作者: haifengmay | 来源:发表于2016-03-14 19:40 被阅读379次

就以一片plist的操作开始吧!

一、今天写plist文件,发现没有写进去,后来查了才发现问题所在:

原文链接:http://stackoverflow.com/questions/7628372/ios-how-to-write-a-data-in-plist

二、plist的基本操作

plist的保存位置

1,工程沙盒里(就是程序user Document文件夹下,以读取文件,写入文件方式)

2,工程自身里(就是在工程里手动创建一个如.plist文件,把固定的内容写入,这个需要人工手动写入)

3,工程沙盒里(保存到user Document下,不过不需要读写文件,用系统的 NSUserDefaults 可以快速保存添加读取删除基本数据类型,类似于android里的Sharedpreferences )

先看截图吧

控制台输出的为工程下plist文件和沙盒文件的路径,通过截图我们可以看到,前缀都是统一的,只是到了程序的文件夹后,一个是appname.app,另一个是Documents下。所以存放位置还是不一样的。

首先说一下,工程下的.plist是我们不能在代码中写入的,可以读取,但是不可以写入(目前我是这样的结论,猜测应该是apple为了安全限制的),所以,代码中进行文件写等操作只能在沙盒路径下的文件中操作。

(程序常用固定数据,比如离线地图数据,各城市经纬度信息等需要我们绑定到程序里(比UserDocument安全),那么,可以代码循环写入,把.plist写在沙盒内,然后手动copy到工程目录下,这样就不用我们手动添加啦)

读写操作:

1-1,创建plist文件。

按command +N快捷键创建,或者File —> New —> New File,选择Resource下的Property List

1-2,工程路径plist文件读取。

[cpp]view plaincopy

//path 读取当前程序定义好的provinces.plist省份城市文件

NSString *path = [[NSBundle mainBundle] pathForResource:@"provinces"ofType:@"plist"];

NSDictionary *data = [NSDictionary dictionaryWithContentsOfFile:path];

self.provincesContent = [NSArray arrayWithArray:[data objectForKey:@"province"]];//array数组的名称就叫province

1-3,读取后赋值给我们相应的数据类型,就可以直接使用了,就是这么简单。

2-1,沙盒路径plist文件的读取。

[cpp]view plaincopy

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

NSString *path =  [patharray objectAtIndex:0];

NSString *filepath=[path stringByAppendingPathComponent:@"provinces.plist"];//添加我们需要的文件全称

//获取此路径下的我们需要的数据(NSArray,NSDictionary,NSString...)

NSMutableArray *rootArray = [NSMutableArray arrayWithContentsOfFile:filepath];//注意,如果想添加新的数据,需要NSMutable类型的

2-2,如果document里没有此文件,会自动创建,读取赋值后,便可使用,同时可以add,update,和remove,具体看上面的截图,一目了然。

3-1,NSUserDefaults快速读写,利用系统提供的方法,我们可以快速保存简单数据类型,如用户登录用户名密码。

[cpp]view plaincopy

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];//获取标准函数对象

NSMutableDictionary *defaultcoordinate = [defaults objectForKey:@"default_coordinate"];//通过对象获取名称下NSMutableDictionary数据

NSString *currentCity = [defaultcoordinate objectForKey:@"c_name"];

3-2,增删改,一看便会。

[cpp]view plaincopy

[defaults setObject:@"kaka"forKey:@"newdata"];//添加id对象类型数据

[defaults objectForKey:@"newdata"];//获取对象类型数据

[defaults setDouble:2013 forKey:@"double"];//添加double类型数据

[defaults doubleForKey:@"double"];//获取double类型数据

[defaults setBool:NO forKey:@"BOOL"];//添加BOOL类型数据

[defaults boolForKey:@"BOOL"];//获取BOOL类型数据

[defaults setInteger:12 forKey:@"int"];//添加int类型数据

[defaults integerForKey:@"int"];//获取int类型数据

[defaults setFloat:0.23 forKey:@"float"];//添加Float类型数据

[defaults floatForKey:@"float"];//获取float类型数据

[defaults removeObjectForKey:@"newdata"];//删除对象数据

3-3,操作之后记得Synchronize同步操作,否则偶然会因为别的线程占大量内存而没有保存成功

[cpp]view plaincopy

[defaults synchronize];

相关文章

  • 【iOS】操作plist

    就以一片plist的操作开始吧! 一、今天写plist文件,发现没有写进去,后来查了才发现问题所在: 原文链接:h...

  • iOS开发-数据持久化之plist文件

    摘要 通过对plist文件的操作对iOS开发中一些数据进行持久化保存。 iOS数据持久化之一——plist文件 i...

  • iOS中.Plist文件和.json文件的使用

    iOS -- .Plist 文件 什么是Plist文件 为什么使用Plist文件 iOS -- .json 文件的...

  • iOS plist 文件读写操作

    plist文件一般保存在沙盒目录下,且存储类型比较单一(具体包含哪些可谷歌、度娘),这里已plist读写字符串为例...

  • StatusBar的设置

    iOS 7 ~ iOS 9 UIAplication方法 info.plist设置首先,需要在info.plist...

  • iOS PlistBuddy工具使用

    plist文件在iOS系统中一类非常重要的配置文件,Mac上提供了对plist文件操作的命令,方便脚本生成想要的p...

  • iOS隐藏状态栏

    iOS之后想要操作顶部状态栏就不是太容易了,操作步骤如下:首先在info.plist文件中添加View contr...

  • iOS开发,plist文件读写操作

    什么是plist文件? plist文件,即属性列表文件,全名是Property List,这种文件的扩展名为.pl...

  • 数据存储

    iOS应用数据存储的常用方式 1. Plist存储(属性列表) Plist存储(Documents) Plist提...

  • iOS数据存储

    iOS应用数据存储方式(XML属性列表-plist) 一、ios应用常用的数据存储方式 1.plist(XML属性...

网友评论

      本文标题:【iOS】操作plist

      本文链接:https://www.haomeiwen.com/subject/avbflttx.html