iOS 阶段学习第25天笔记(iOS沙盒机制介绍)
2015-07-18 22:43
543 查看
iOS学习(OC语言)知识点整理
其他应用的应用沙盒,但在ios8中已经开放访问(extension)
1、应用程序包:包含所有资源文件和可执行文件
2、Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录
该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。
4、Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。
不是很重要的资源
iTunes会自动备份该目录。
一、iOS沙盒机制介绍
1)概念:
每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问其他应用的应用沙盒,但在ios8中已经开放访问(extension)
2)extension是ios8新开放的一种对几个固定系统区域的拓展机制,它可以在一定程度上弥补ios的沙盒机制对应用间的通信限制
3)应用沙盒一般包括以下几个文件目录
1、应用程序包:包含所有资源文件和可执行文件
2、Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录
3、tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也可能会自动清理
该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。
4、Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。
5、Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,一般存放体积比较大,
不是很重要的资源
6、Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的设置信息,
iTunes会自动备份该目录。
4)获取应用的根目录 例如:
NSString *sandBox=NSHomeDirectory();
5)获取应用的Documents目录 例如:
//NSSearchPathForDirectoriesInDomains 返回绝对路径 //NSSearchPathForDirectoriesInDomains(要查找的目录, 是否是用户主目录, YES/NO 是否获取全路径); NSArray *arry= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSLog(@"%@",[arry lastObject]);
6)获取应用的Libaray目录 例如:
NSArray *arry2= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSLog(@"%@",[arry2 lastObject]);
7)获取应用的Caches目录 例如:
NSArray *arry3= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSLog(@"%@",[arry3 lastObject]);
8)获取应用的Preferences 目录,不能直接获取只能自行拼接 例如:
NSArray *arry4= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *path=[arry4 lastObject]; path=[path stringByAppendingPathComponent:@"Preferences"]; NSLog(@"%@",path);
9)获取应用的tmp目录 例如:
NSString *tmp=NSTemporaryDirectory(); NSLog(@"%@",tmp);
10)写入文件到指定的应用目录下 例如:
NSArray *arry4= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *path=[arry4 lastObject]; path=[path stringByAppendingPathComponent:@"Preferences/Test.txt"]; NSString *str=@"abcdefg"; [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
11)将数据写入用户配置沙盒目录 例如:
1 //保存选择结果到沙盒 2 [[NSUserDefaults standardUserDefaults] setObject:_result forKey:@"userPrama"]; //立即同步数据 [[NSUserDefaults standardUserDefaults] synchronize]; 4 //从沙盒取出保存结果 5 NSString *result = [[NSUserDefaults standardUserDefaults] valueForKey:@"userPrama"];
相关文章推荐
- iOS 阶段学习第24天笔记(Block的介绍)
- iOS 阶段学习第23天笔记(XML数据格式介绍)
- iOS图片规格
- iOS 阶段学习第22天笔记(JSON数据格式介绍)
- iOS第三天认识及了解注意
- IOS 学习路线
- IOS开发-12.Autoresizing概述
- IOS __attribute__ ((warn_unused_result))的含义
- 联想一体机BIOS设置U盘启动的方法
- iOS开发:快速集成支付宝快捷支付
- IOS多线程之dispatch_once剖析
- iOS Xcode中cell与tableView的顶部有空白,如何去掉空白
- Dell poweredge r210进BIOS修改磁盘控制器(SATA Controller)接口模式
- iOS7的多任务处理
- 使用IOS7原生API进行二维码条形码的扫描
- iOS上使用自定义ttf字体
- iOS中用正则表达式验证邮箱和手机号
- <转>提高iOS开发效率的方法和工具
- iOS_TableView的相关操作
- IOS开发——Protocol使用协议