一、沙盒
沙盒;每一个苹果应用都在自己的沙盒空间中运行,一般无法涉及其他应用的沙盒空间,保障了应用的安全性和互不干扰。
沙盒下的文件有:
1、应用程序包;包含了所有的资源文件盒可执行文件
2、Document:保存文件运行时需要的持久化数据,iTunes会同步备份该目录
3、tmp:保存应用运行时所需的临时数据,使用完成后,删除该目录下相应的文件,iTunes不会同步备份
4、Library/Cache:保存应用运行时产生的持久化数据,iTunes同步设备时不备份该目录。一般存发体积大不备份的不重要数据
5、Library/Preference:保存运用所有偏好设置,iOS的setting应用会在该目录下查找应用的设置信息。iTunes不会同步备份
获取应用的沙盒根目录:
//获取应用沙盒根目录 let paths1Str:NSString = NSHomeDirectory() as NSString //注意NSString与String是有区别的
二、数据持久化之Plist文件
在一些应用中,需要对一些配置性(应用配置,用户基本数据)数据进行持久化存储,可以建立plist文件存储。Plist可以简单称为属性表,也可以称为本地化数据。.plest文件其实就是XML格式的文件支持的数据有(全加NS)Dictionary、Array、Boolean、Data、Date、Number、String这些类型
如何创建plist文件
1、 非代码创建plist文件
可以创建多个plist文件,可根据功能进行分类存储,在项目文件中可以直接看到的(而代码产生不知道能不能直接看到?),可视化化编辑,当然在创建一个Xcode应用时就自动产生了一个plist文件。
在Xconde的目录次下点击新建,选择ios 下的Resource 选择Property List (如截图)
在Plist文件中写入数据:
读取plist文件数据
读取写入的数据:
注意:这种方式创建的plist文件只能在Xcode中写好,只能在程序中读取不能修改,可以应用到一些固定化数据的存储
扩展:中文在控制台中显示,NSDate数据为封装的字节,怎样取得字典值,plist表的NSdata无法是使用jison/XML解析
2、 代码创建plist文件
首先应该获取沙盒的根目录,或者直接获取沙盒到沙盒下的Document路径,然后在添加Plist文件增加路径。
创建代码如下:
<span style="white-space:pre"> </span>//使用代码床架Plist(可读可修改) //获取沙盒document目录之一(可防止document不存在) let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as NSString /*NSSearchPathDirectory.DocumentDirectory 查找Documents文件夹 NSSearchPathDomainMask.UserDomainMask 在用户的应用程序下查找 true 展开路径 false 当前应用的根路径 == “~” */ /// 获取沙盒目录之二 //获取应用沙盒根目录 let paths1Str:NSString = NSHomeDirectory() as NSString //注意NSString与String是有区别的 //使用NSString对象的stringByAppendingPathComponent()方法拼接路径[增加路径成份字符串:在原路径(为NSString)再加一个子路径] let paths1 = paths1Str.stringByAppendingPathComponent("Documents") as NSString //获取Plist的路径 let plistPath = paths1.stringByAppendingPathComponent("data.plist")//相当于plist的路径 let data:NSDictionary = [ "name":"lifu", "age":"21", "address":["province":"四川","city":"YB"] ] //将数据写到plist文件中 data.writeToFile(plistPath, atomically: true) //读取Plist文件(修改)[在开发中往往需要重新获取plistPath] let readPlist = NSDictionary(contentsOfFile: plistPath) print("存入plist文件的数据为:",readPlist)
学习参考;航哥-使用.plist文件本地数据的保存和加载
航哥-.plist文件数据的读取和存储
swift读写plist文件教程及代码