iso开发基础——数据持久化

一、沙盒

沙盒;每一个苹果应用都在自己的沙盒空间中运行,一般无法涉及其他应用的沙盒空间,保障了应用的安全性和互不干扰。

沙盒下的文件有:

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 (如截图)

iso开发基础——数据持久化_第1张图片

在Plist文件中写入数据:

iso开发基础——数据持久化_第2张图片

读取plist文件数据

读取写入的数据:

iso开发基础——数据持久化_第3张图片

iso开发基础——数据持久化_第4张图片


注意:这种方式创建的plist文件只能在Xcode中写好,只能在程序中读取不能修改,可以应用到一些固定化数据的存储

扩展:中文在控制台中显示,NSDate数据为封装的字节,怎样取得字典值,plist表的NSdata无法是使用jison/XML解析

iso开发基础——数据持久化_第5张图片

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文件教程及代码


你可能感兴趣的:(本地化,ios开发,plist,沙盒)