首页 > 其他 > 详细

OC-之沙盒

时间:2016-03-07 01:08:40      阅读:229      评论:0      收藏:0      [点我收藏+]

一、iOS沙盒机制介绍 (转载)

1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问

    其他应用的应用沙盒,但在ios8中已经开放访问(extension),应用程序向外请求或接收数据都需要经过权限认证

2)extension是ios8新开放的一种对几个固定系统区域的拓展机制,它可以在一定程度上弥补ios的沙盒机制对应用间的通信限制

3)应用沙盒一般包括以下几个文件目录:

    1、应用程序包:包含所有资源文件和可执行文件

 NSString *sandBox=NSHomeDirectory();

    2、Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录

    3、tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也可能会自动清理

         该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。

    4、Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。

    5、Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,一般存放体积比较大,

         不是很重要的资源

    6、Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的设置信息,

        iTunes会自动备份该目录。

 

4)获取应用的根目录 例如: 

1  NSString *sandBox=NSHomeDirectory();

 

5)获取应用的Documents目录 例如:

1 //NSSearchPathForDirectoriesInDomains 返回绝对路径 
2 //NSSearchPathForDirectoriesInDomains(要查找的目录, 是否是用户主目录, YES/NO 是否获取全路径); 
3 NSArray *arry=  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
4 NSLog(@"%@",[arry lastObject]);

 

6)获取应用的Libaray目录 例如:

1 NSArray *arry2=  NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
2 NSLog(@"%@",[arry2 lastObject]);

 

7)获取应用的Caches目录 例如:

1 NSArray *arry3=  NSSearchPathForDirectoriesInDomains(NSCachesDirectory,    
2 NSUserDomainMask, YES);
3 NSLog(@"%@",[arry3 lastObject]);

 

8)获取应用的Preferences 目录,不能直接获取只能自行拼接 例如:

1 NSArray *arry4=  NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
2 NSString *path=[arry4 lastObject];
3 path=[path stringByAppendingPathComponent:@"Preferences"];
4 NSLog(@"%@",path);

 

9)获取应用的tmp目录 例如:

1 NSString *tmp=NSTemporaryDirectory();
2 NSLog(@"%@",tmp);

 

10)写入文件到指定的应用目录下 例如:

1 NSArray *arry4=  NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
2 NSString *path=[arry4 lastObject]; 
3 path=[path stringByAppendingPathComponent:@"Preferences/Test.txt"];
4 NSString *str=@"abcdefg";
5 [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];



11) 隐藏文件
查看模拟器的沙盒文件夹在Mac电脑上的存储位置,首先,这个文件夹是被隐藏的,所以要先将这些文件显示出来,打开命令行:
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false 
然后重新启动Finder,点击屏幕左上角苹果标志——强制退出——选择Finder然后点击重新启动,这个时候在重新打开Finder就可以看到被隐藏的文件了。
还有一种比较简单的办法就是直接点击Finder图标右键——前往文件夹——输入/Users/your username/Library/Application Support/iPhone Simulator/ ,然后确认就可以了。your username是你本机的用户名

OC-之沙盒

原文:http://www.cnblogs.com/DR-Li/p/5249053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!