• ``` @property (nonatomic, strong) NSArray *dataArr; //这里要注意 这是重写getter方法 - (NSArray *)dataArr{ ... self.dataArr已经接收了plist数据,为什么最后还要把可变数组dataArrM赋值给它 求大神解释一下
  • 通过对plist文件的操作对iOS开发中一些数据进行持久化保存。


    iOS数据持久化之一——plist文件

    iOS开发中,我们时常会将一些简单的数据进行持久化的存储,方便我们保存程序的一些配置和用户的一些数据,plist文件就是我们保存这些数据的最佳选择。

    一、何为plist

    plist是一种文件格式,其内容规则是xml文件,后缀为.plist,因此,我们更习惯于成它问plist文件,在iOS开发中,这种文件常用来保存一些简单的配置数据,例如项目中的info.plist。

    通过plist文件编辑器,我们可以很方便的查看和编辑层次清晰的plist文件。



    二、通过操作plist文件进行数据持久化的几种方式


    1、在项目包中手动创建一个plist文件,通过代码对其进行操作

    这种方式创建的plist文件非常自由且直观,我们可以创建多个根据功能进行分类存储,并且可以通过Xcode的可视化工具进行可视化的修改。

    首先,我们新创建一个文件,在Resource中选择 Property List文件:



    之后,我们通过Xcode,在其中添加一些数据:



    通过代码,我们来获取这些数据:

    //获取myInfo文件地址

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

    NSMutableDictionary * dic =[NSMutableDictionary dictionaryWithContentsOfFile:path];

    NSLog(@"%@",dic);

    打印结果如下:

    这种方式添加的plist文件,我们只能在xcode中配置好,然后再程序中读取使用,但是不能在程序中修改这些数据,可以应用于一些固定的数据的存储,例如地图的属性,省市县列表等。


    2、在沙盒目录中创建和使用plist文件

    我们还可以通过代码在沙盒中创建我们自己的plist文件,进行数据的存储。同时可以支持add,delete,replace,find等操作。

    //获取沙盒目录

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

    NSString *plistPath1 = [paths objectAtIndex:0];

    //得到完整的文件名

    NSString *filename=[plistPath1 stringByAppendingPathComponent:@"my.plist"];

    NSDictionary * dic = @{@"my":@"haha"};

    [dic  writeToFile:filename atomically:YES];

    //取数据

    NSDictionary * getDic = [NSDictionary dictionaryWithContentsOfFile:filename];

    NSLog(@"%@",getDic);

    打印如下:



    这种方式无疑会更加安全,存取也更加自由。

    展开全文
  • 关于IOS处理plist的读写 2012-12-12 17:13:06
    今天在开发的时候,碰到一个任务,需要从服务器上获取正则表达式,放在.plist文件中。因为是新手,从来没处理过此类问题。于是进行www.google.com andwww.baidu.com 但是网络上的代码很杂乱,明显不适合我这个新手。...
  • iOS plist文件写入和读取 2017-01-13 15:12:51
    1.写入plist(代码创建的plist文件)此方法是不断写入,不会替换之前数据 - (void)insertToPlist:(NSDictionary *)dictionary nickName:(NSString *)nickName {  NSString *plistPath = [[N
  • iOS plist路径读取 2017-10-10 21:00:40
    swift 把数据写进plist文件中,有时候需要把后台返回的数据保存的时候,可以这么操作 let array = NSArray(objects: "hangge.com","baidu.com","google.com","163.com","qq.com") let filePath:Strin
  • iOS篇—plist文件 2019-03-10 18:31:54
    如何读取plist文件 1.获取当前程序主路径下的某个文件的路径 NSString *filePath = [...2.读取路径里面的内容,保存的数据是什么类型就用什么类型 二进制NSData 数组 NSArray 字典NSDictionary NSDiction
  • iOS存储方式有很多,我就不一一说明了,现在我只提到我用到的。 现在有个需求是将部分数据存到本地,并且在没有网络的情况下能够查看数据。 根据这个需求,也就是需要做一个数据本地化存储。 那么我们可以想到有...
  • 1.一开始使用的是以下方式读取plist文件中数据,但返回为nil:  [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"messages" ofType:@"plist"]]; 接着以为是因为类型错误,应为...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 创建一个Plist文件: 选择Type为Array类型,数组中的数据都是String类型的下面是数组遍历输出的代码:FR:海涛高软(QQ技术群:386476712)
  • 读取和存储数据是很多ios应用中常见的功能。有很多办法可以实现这个功能:NSUserDefaults、CoreData、使用plist等等。今天要介绍的是如何使用plist(使用swift语言)
  • iOS读取info.plist中的值 2019-02-21 01:13:08
    iOS读取info.plist中的值 在app运行的时候,需要读取info.plist中的信息,用以下代码可获取整个info.plist的信息 [[NSBundle mainBundle] infoDictionary] 以下为根据 key 值去 URLTypes 里面对应的值:...
  • 数据存储的核心都是写文件,主要有四种持久化方式:属性列表(Plist),对象序列化,SQLite数据库,CoreData。 存储Plist:  键值进行存储,不能存储对象。对象需要序列化编码才能写入文件。NSAarry,...
  • IOS读取项目中的plist 2016-04-15 16:37:42
    NSBundle *bundle = [NSBundle mainBundle];... NSString *path = [bundle pathForResource:@"Property List" ofType:@"plist"]; NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];这种方法读取
  • 大家都知道,在xcode编写ios项目的时候,工程里有个plist文件,这个文件有什么用处呢 一般情况下我们都把他那里存储一些固定的变量如:nsstring ,nsarray,nsdictionary等, 简单得做法就是在在plist里面点加号,...
  • iOS数据持久化之一——plist文件 iOS开发中,我们时常会将一些简单的数据进行持久化的存储,方便我们保存程序的一些配置和用户的一些数据plist文件就是我们保存这些数据的最佳选择。 一、何为plist plist是一种...
  • 它是一种用来存储串行化后的对象的文件,在iOS开发中通常用来存储用户设置,还可以用于存储程序中经常用到而不经常改动的数据。下面就看一下如何创建和读写plist文件。 一、创建plist文件 1、在程序中通过新建文件...
  • 持久化方式就是数据存储方式.iOS支持本地存储和云端存储,而本地存储主要涉及如下三种机制: 属性列表:集合对象可以读写到属性列表中; SQLite数据库:SQLite是一个开源嵌入式关系型数据库; CoreData:是一种对象关系映射...
  • 1.直接写文件方式:可以存储的对象有NSString、NSArray、NSDictionary、NSData、NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中。 2.NSUserDefaults(偏好设置),用来存储应用设置信息,文件放在...
1 2 3 4 5 ... 20
收藏数 4,827
精华内容 1,930