应用沙盒结构分析

1、应用程序包:包含了所有的资源文件和可执行文件

2、Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录

3、tmp:保存应用运行时所需要的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行,系统也可能会清除该目录下的文件,iTunes不会同步备份该目录

4、Library/Cache:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不备份该目录。一般存放体积大、不需要备份的非重要数据

5、Library/Preference:保存应用的所有偏好设置,IOS的Settings应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录

IOS中的数据存储

1、存储为plist属性列表

    func saveWithFile() {        /// 1、获得沙盒的根路径        let home = NSHomeDirectory() as NSString;        /// 2、获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径        let docPath = home.stringByAppendingPathComponent("Documents") as NSString;        /// 3、获取文本文件路径        let filePath = docPath.stringByAppendingPathComponent("data.plist");        var dataSource = NSMutableArray();        dataSource.addObject("衣带渐宽终不悔");        dataSource.addObject("为伊消得人憔悴");        dataSource.addObject("故国不堪回首明月中");        dataSource.addObject("人生若只如初见");        dataSource.addObject("暮然回首,那人却在灯火阑珊处");        // 4、将数据写入文件中        dataSource.writeToFile(filePath, atomically: true);        println("/(filePath)");    }
    func readWithFile() {        /// 1、获得沙盒的根路径        let home = NSHomeDirectory() as NSString;        /// 2、获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径        let docPath = home.stringByAppendingPathComponent("Documents") as NSString;        /// 3、获取文本文件路径        let filePath = docPath.stringByAppendingPathComponent("data.plist");        let dataSource = NSArray(contentsOfFile: filePath);        println("/(dataSource)");    }

2、使用NSUserDefaults存储数据

    func saveWithNSUserDefaults() {        /// 1、利用NSUserDefaults存储数据        let defaults = NSUserDefaults.standardUserDefaults();        //  2、存储数据        defaults.setObject("衣带渐宽终不悔", forKey: "name");        //  3、同步数据        defaults.synchronize();    }
    func readWithNSUserDefaults() {        let defaults = NSUserDefaults.standardUserDefaults();        let name = defaults.objectForKey("name") as NSString;        println("/(name)");    }

3、归档存储:对象需要实现NSCoding协议,归档对应encode,反归档对应decode

    /**    归档数据    需要实现NSCoding协议    */    func saveWithNSKeyedArchiver() {        let home = NSHomeDirectory() as NSString;        let docPath = home.stringByAppendingPathComponent("Documents") as NSString;        let filePath = docPath.stringByAppendingPathComponent("book.data");        let book = CFAddressBook(name: "Francis", call: "199");        /**        *  数据归档处理        */        NSKeyedArchiver.archiveRootObject(book, toFile: filePath);    }
    /**    反归档数据    */    func readWithNSKeyedUnarchiver() {        let home = NSHomeDirectory() as NSString;        let docPath = home.stringByAppendingPathComponent("Documents") as NSString;        let filePath = docPath.stringByAppendingPathComponent("book.data");        let book = NSKeyedUnarchiver.unarchiveObjectWithFile(filePath) as CFAddressBook;        println("/(book.name), /(book.call)");    }

4、SQlite3

5、CoreData

Swift之沙盒与数据存储的更多相关文章

  1. iOS沙盒及数据存储

    时间久了容易忘,针对沙盒的相关实用技巧做一个记录和整理. 一.iOS数据存储常用方式 1.XML属性列表(plist) 不是所有对象都可以写入: 2.Preference(偏好设置) 本质还是通过“p ...

  2. 【Swift】沙盒缓存

    本地sandbox缓存目录     沙盒の 主目录: po NSHomeDirectory()   /Users/SpongeBob/Library/Developer/CoreSimulator/D ...

  3. iOS获取真机沙盒文件、获取真机本地数据

    有时我们需要对真机内的数据进行分析,那么如何获取沙盒所有数据文件呢? 1.设备连接到电脑,打开xcode 2.打开window-devices 3.打开后,选择设备名,选择app,导出数据 4.最后拿 ...

  4. iOS开发 - 获取真机沙盒数据

    今天要获取之前真机測试时写入沙盒的数据, 本来以为挺麻烦的. 后来捣腾了一下, 才知道原来这么简单... 以下直接看详细步骤. 前提: 真机已经通过USB和你的电脑连接上了! 1.进入Organize ...

  5. Android中WebView的跨域漏洞分析和应用被克隆问题情景还原(免Root获取应用沙盒数据)

    一.前言 去年年底支付宝的被克隆漏洞被爆出,无独有偶就是腾讯干的,其实真正了解这个事件之后会发现,感觉是针对支付宝.因为这个漏洞找出肯定花费了很大劲,主要是因为支付宝的特殊业务需要开启了WebView ...

  6. 最全的iOS数据存储方法

    目的 项目准备运用的Core Data进行本地数据存储,本来打算只写一下Core Data的,不过既然说到了数据存储,干脆来个数据存储基础大总结!本文将对以下几个模块进行叙述. 沙盒 Plist Pr ...

  7. iOS初级数据持久化 沙盒机制 归档与反归档

    数据持久化就是数据保存成文件,存储到程序中的沙盒中. 沙盒构成 Document 存储用户数据,需要备份的信息 Caches 缓存文件, 程序专用的支持文件 Temp 临时文件 通过代码查找程序沙盒的 ...

  8. iOS边练边学--应用数据存储的常用方式(plist,Preference,NSKeyedArchiver)其中的三种

    iOS应用数据存储的常用方式: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3--这里暂且不讲 Core D ...

  9. IOS数据存储之文件沙盒存储

    前言: 之前学习了数据存储的NSUserDefaults,归档和解档,对于项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了.文件沙盒存储主要存储非机密数据,大的数据. ...

随机推荐

  1. No.2 selenium学习之路之八种基本定位

    selenium的八种定位方式 1.通过id定位     find_element_by_id() send_keys() 输入框输入字符串 click()  鼠标点击事件 注:send_keys输入 ...

  2. Codeforces 552C Vanya and Scales(进制转换+思维)

    题目链接:http://codeforces.com/problemset/problem/552/C 题目大意:有101个砝码重量为w^0,w^1,....,w^100和一个重量为m的物体,问能否在 ...

  3. linux c获取本地时间

    在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下: #ifndef _TM_DEFINED struct tm { int tm_sec; /* 秒–取值区间 ...

  4. 提高eclipse使用效率(一)--使用快捷键

    编辑代码常用快捷键 格式化代码的快捷键 Ctrl + Shift + F 格式化缩进的快捷键是 Ctrl + I,只能对选中的文本进行缩进 删除一行的快捷键是 Ctrl + D 当前窗口最大化最小化切 ...

  5. 【LOJ】#2722. 「NOI2018」情报中心

    https://loj.ac/problem/2722 题解 考场上想了60分,但是由于自己不知道在怎么zz,我连那个ai<bi都没看到,误以为出题人没给lca不相同的部分分,然后觉得lca不同 ...

  6. 【LOJ】#2032. 「SDOI2016」游戏

    题解 看错题了,以为单次修改相当于一个覆盖,后来才明白"添加"-- 就相当于添加很多线段求最小值 首先这个等差数列添加的方式比较烦人,我们拆开两条链,一条s到lca,一条lca到t ...

  7. 41-2:和为S的连续正数序列

    import java.util.ArrayList; /** * 面试题41-题目2:和为S的连续正数序列 * 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案 ...

  8. 张忠谋:摩尔定律将死,物联网是“Next Big Thing”

          2014台湾半导体产业协会(TSIA)年会于27日登场,台积电董事长暨TSIA名誉理事长张忠谋以"Next Big Thing"为题发表演说.张忠谋表示,他认为摩尔定律 ...

  9. 牛客练习赛1 B - 树

    链接:https://www.nowcoder.com/acm/contest/2/B来源:牛客网 题目描述 shy有一颗树,树有n个结点.有k种不同颜色的染料给树染色.一个染色方案是合法的,当且仅当 ...

  10. rabbitmq学习(二) —— helloword!

    rabbitmq学习当然是跟着官网走最好了,官网的教程写的很好,跟着官网教程走一遍就会有个初步了解了 下面的教程转自http://cmsblogs.com/?p=2768,该博客对官网的翻译还不错 介 ...