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

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

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


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


一、何为plist


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

image.png



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


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


1、操作系统为我们准备的用户配置文件——NSUserDefaults


       对于NSUserDefaults,具体用法和一些小技巧在以前的一篇博客中有详细的描述,一般的用户配置信息,我们都会选择通过这种方式来进行持久化,地址如下:http://my.oschina.net/u/2340880/blog/411344


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


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


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


image.png


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

image.png



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


//获取myInfo文件地址

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

   NSMutableDictionary * dic =[NSMutableDictionary dictionaryWithContentsOfFile:path];

   NSLog(@"%@",dic);


打印结果如下:

image.png



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


3、在沙盒目录中创建和使用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);


打印如下:


image.png


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

目录
相关文章
|
7月前
|
JSON JavaScript 安全
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
62 1
|
7月前
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
206 0
|
4月前
|
iOS开发 开发者
iOS平台RTMP|RTSP播放器如何实时回调YUV数据
我们在做RTMP、RTSP播放器的时候,有开发者需要自己处理拉取到的YUV数据,做二次分析之用,为此,我们做了以下的设计:InitPlayer之后,再调用SmartPlayerStart()接口之前,设置yuv数据回调即可。
|
7月前
|
Java iOS开发
iOS的数据序列化(又称持久化)的两类使用方式
iOS的数据序列化(又称持久化)的两类使用方式
66 0
|
7月前
|
移动开发 小程序 API
uniapp通过蓝牙传输数据 (ios)
uniapp通过蓝牙传输数据 (ios)
339 1
|
7月前
|
iOS开发 开发者
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
|
7月前
|
移动开发 监控 小程序
mPaaS常见问题之uniapp ios端云打包的配置config文件如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
188 0
|
7月前
|
缓存 小程序 Android开发
mPaaS问题之iOS调用插件的时候提示没有配置mpaas. Config文件如何解决
mPaaS配置是指在mPaaS平台上对移动应用进行的各项设置,以支持应用的定制化和优化运行;本合集将提供mPaaS配置的操作指南和最佳实践,助力开发者高效管理和调整移动应用的设置。
143 1
|
7月前
|
iOS开发
ipa文件安装到ios系统
ipa文件安装到ios系统
77 0
|
7月前
|
Java 开发工具 Android开发
SLS:使用 OTel 官方 SDK 采集 Android、iOS Trace 数据实践
本文介绍了使用 OTel 官方 SDK 采集 Android、iOS Trace 数据实践。
453 7
SLS:使用 OTel 官方 SDK 采集 Android、iOS Trace 数据实践