归档:用某种格式保存某个对象,又称持久化。
1XML 属性列表plist归档(持久化)
2Preference(偏好设置)
3NSKeyedArchiver归档
4SQLite3
5Core Data(操纵SQLLite3)
应用沙盒
一、iOS沙盒机制
iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下,包括图片,属性文件plist,bundle,nib文件等,这块区域称之为沙盒(sandBox)。
- 每个应用都有属于自己的存储空间,即沙盒
- 应用只能访问自己的沙盒,不可访问其他区域
- 如果应用需要进行文件操作,则必须将文件存放在沙盒中,尤其是数据库文件,在电脑上操作时,可以去访问,但是如果要装在真机上可以使用,必须将数据库文件拷贝至沙盒中。
二、打开沙盒路径
1、如果不知道沙盒路径,可以在自己的应用中打印其路径。(自己虚拟机 Xcode6.2 ios7.1)
NSLog(@"沙盒路径:%@",NSHomeDirectory());
会得到打印结果*为字母或数字,即为沙盒的路径
1 2015-06-19 23:10:37.692 私人通讯录[31250:1282190] 沙盒路径:/Users/zjj/Library/Developer/CoreSimulator/Devices/7CE3FB7E-052B-4B1D-8783-BEAFB45A3558/data/Containers/Data/Application/15B4C992-A4C6-4005-BF76-077EA5BBE9FC
路径为:/Users/zjj/Library/Developer/CoreSimulator/Devices
2、打开Finder,选择前往-前往文件夹(或选择快捷键command+shift+G)输入打印出来的路径即可
三、目录结构
沙盒默认情况下有三个目录文件夹documents,Library,tmp及应用的App文件,只可在相应的文件夹中进行操作
-
Documents/ 保存应用程序的重要数据文件和用户数据文件等。如数据库文件,或程序中浏览到的文件数据。iTunes 同步时会备份该目录。
- Library:存储应用的默认设置及状态信息; Library/cache:保存应用程序使用时产生的支持文件和
缓存文件,还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录。
- Library/Preferences 保存应用程序的偏好设置文件(使用 NSUserDefaults 类设置时创建,不应该手动创建)。
- tmp:保存应用运行时所需要的临时数据,iphone 重启时,会清除该目录下所有文件。
在Xcode 6中iPhone模拟器的位置已经发生了变化。与此同时,在iOS 8 release Note中有提到,app的沙盒结构已经发生了改变,现在它被划分成了三个容器,Bundle容器、Data容器、iCloud容器。iOS 8 app沙盒目录结构如下图: