Swift之沙盒与数据存储

应用沙盒结构分析

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

时间: 2024-07-30 10:06:14

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

01- - -1.获得项目中info.plist文件的内容 2.沙盒的数据存储及读取 3.控制器view的高度和状态栏statusBar的关系 4.[UIScreen mainScreen].applicationFrame的取值 5.按钮的状态 6.错误调试技巧 7.按钮的各种状态设置

1.获得项目中info.plist文件的内容 1> [NSBundle mainBundle].infoDictionary 2> 版本号在info.plist中的key:kCFBundleVersionKey 2.沙盒的数据存储及读取 1> 数据存储: [[NSUserDefaults standardUserDefaults] setObject:version forKey:versionKey]; 存储数据时记得同步一下 [[NSUserDefaults standardUser

【Swift】沙盒缓存

本地sandbox缓存目录 沙盒の 主目录: po NSHomeDirectory() /Users/SpongeBob/Library/Developer/CoreSimulator/Devices/5A46B8A4-F547-4B6A-B5B8-F76A6E13998F/data/Containers/Data/Application/02DF6B84-32DF-4082-A7AE-EF4D9A110E42 沙盒の bundle(*.app包) 路径: po [[NSBundle mainB

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

今天要获取之前真机测试时写入沙盒的数据, 本来以为挺麻烦的. 后来捣腾了一下, 才知道原来这么简单... 下面直接看具体步骤. 前提: 真机已经通过USB和你的电脑连接上了! 1.进入Organizer 2.选择你的应用. 并导出数据.(点击Download) 3.保存数据到相应位置.(点击Save) 4.打开, 查看数据. 保存完毕后, 你后发现一个这样的文件. 选中它, 右键---->显示包内容. 然后进入------->AppData ------>Documents. 即可看到你

iOS开发,你不得不知的数据存储---干货

1.偏好设置—多用于用户名.是否自动登录等数据存储 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例(有切仅有一个),通过它来存取偏好设置,比如,保存用户名.字体大小.是否自动登录 (1)保存内容设置 1 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 将用户名存储 2 [default

UI 沙盒机制 文件的读写操作

沙盒机制: 数据持久化的本质:将数据读成文件,存储在本地 沙盒机制:沙盒就是系统针对于每个应用程序在本地生成的文件夹(名字随机生成).对于不同的应用程序,不能访问其他应用程序沙盒内的内容.对于该应用内容起到保护作用. 沙盒内的文件夹: (1)Documents:用来存储长久保存的数据 (2)XXX.app: 应用程序的包,包含应用程序加载所需的所有资源,(readonly 只读,不可修改).平时使用的NSBundle就是该包. (3)Library: A: Caches:本地缓存,存储想暂时保存

IOS 初级数据持久化-沙盒机制

什么是数据持久化?数据的永久存储 为什么要坐数据持久化:存储在内存中的数据,程序关闭,内存释放,数据丢失,这种数据是临时的 数据初九化的本质:数据保存成文件,存储到程序的沙河中 1.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在IOS系统内都放在了统一的文件夹目录下 沙盒的本质就是一个文件夹,名字是随机分配的. 2.沙盒路径的位置 1.通过Finder查找程序沙盒相对的路径 通过代码查找程序沙盒相对路径 NSString *D

IOS数据存储 —— 沙盒

沙盒结构 沙盒的文件系统?录,如下图所示(假设应用的名称叫Layer) 1.Documents 目录 您应该将所有的应用程序数据文件写入到这个目录下. 这个目录用于存储用户数据或其它应该定期备份的信息. 保存由应用程序产生的文件或者数据,例如:涂鸦程序生成的图片,游戏关卡记录 iCloud会自动备份Document中的所有文件. 上架注意 如果保存了从网络上下载的文件,在上架审批的时候会被拒! 2.AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身.由于应用程序必须经过签

ios应用数据存储的常用方式 ios7.1应用沙盒

归档:用某种格式保存某个对象,又称持久化. 1XML 属性列表plist归档(持久化) 2Preference(偏好设置) 3NSKeyedArchiver归档 4SQLite3 5Core Data(操纵SQLLite3) 应用沙盒 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下,包括图片,属性文件plist,bundle,nib文件等,这块区域称之为沙盒(sandBox). 每个应用都有属于自己的存储空间,即沙盒 应用只能访问

[iOS基础控件 - 6.11.5] 沙盒 & 数据存储

A.沙盒 每个APP都有一个沙盒,是独立存在的 1.Xcode5和Xcode6的模拟器文件目录 a.模拟器路径改版 (1)Xcode5中模拟器路径为:/Users/用户名/Library/Application Support/iPhone Simulator (2)Xcode6中模拟器路径为:/Users/用户名/ Library/Developer/CoreSimulator 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 b.沙盒路径改版 (1)Xcode5中沙盒的路径