代码改变生活

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

  归档:用某种格式保存某个对象,又称持久化。

1XML 属性列表plist归档(持久化)

2Preference(偏好设置)

3NSKeyedArchiver归档

4SQLite3

5Core Data(操纵SQLLite3)

 

应用沙盒

一、iOS沙盒机制

iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下,包括图片,属性文件plist,bundle,nib文件等,这块区域称之为沙盒(sandBox)。

  1. 每个应用都有属于自己的存储空间,即沙盒
  2. 应用只能访问自己的沙盒,不可访问其他区域
  3. 如果应用需要进行文件操作,则必须将文件存放在沙盒中,尤其是数据库文件,在电脑上操作时,可以去访问,但是如果要装在真机上可以使用,必须将数据库文件拷贝至沙盒中。

二、打开沙盒路径

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文件,只可在相应的文件夹中进行操作

  • AppName.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沙盒目录结构如下图:
 

posted on 2015-06-19 23:56  张大少。  阅读(353)  评论(0编辑  收藏  举报

导航

繁星纵变 智慧永恒