应用沙盒简介

iOS中的应用沙盒,是一种安全机制:

应用程序之间相互隔离 ,只能访问自己本地的内容,不能访问其他app文件目录结构(越狱手机除外)

为应用程序构建了一个完整的运行空间 ,包含应用的缓存和数据备份

App所在的沙盒目录

真机:/var/mobile/Applications/***_***_***

模拟器:/Users/username/Library/Application Support/iPhone Simulator

获得沙盒路径的方法:

NSString*NSHomeDirectory(void);

沙盒的文件系统

应用沙盒的文件系统目录,如下:

Documents

保存应用运行时生成的需要持久化的数据

iTunes同步设备时会备份该目录。如游戏的存档。

tmp

保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。

应用没有运行时,系统也会清除该目录中的文件。

Library/Caches

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

一般存放体积大、不需要备份的重要数据。

Library/Preference

保存应用的偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。

iTunes同步设备时会备份该目录。




NSBundle对象

描述了在程序中的代码和资源的包

开发时项目中的资源(如图片资源、音频资源)会随之打包到包中

获取包的方法:

+(NSBundle*)mainBundle

获取包中的资源的绝对路径:

-(NSString*)pathForResource:(NSString*)nameofType:(NSString*)extension

获取包中的资源的URL:

-(NSURL*)URLForResource:(NSString*)namewithExtension:(NSString*)extension

包的路径:

@property(readonly,copy)NSString*bundlePath@property(readonly,copy)NSURL*bundleURL