ios系统不容许访问其他使用的选用沙盒,iOS学习(OC语言)知识点整理

iOS学习(OC语言)知识点整理

一、iOS沙盒机制介绍
(1)概念:每个ios应用都有协调的采用沙盒,应用沙盒就是文件系统目录,与其它使用放入文件
系统隔离,ios系统不同意访问其他应用的拔取沙盒,但在ios8中已经开放访问(extension)
(2)extension是ios8新开放的一种对多少个稳定系统区域的开展机制,它可以在早晚水准上弥补ios的沙盒机制对运用间的通信限制
(3)应用沙盒一般包括以下多少个文件目录:
1 应用程序包:包含所有资源文件和可执行文件 2
Documents:保存应用运行时生成的需要持久化的多寡,iTunes会自动备份该目录 3
tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的公文从该目录删除,应用尚未运行时,系统也说不定会自行清理该目录下的文本,iTunes不会同步该目录,华为重启时该目录下的公文会丢掉。4
Libaray:存储程序的默认设置和其他情况新闻,iTunes会自动备份该目录。 5
Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在选拔退出删除,一般存放体积相比较大,不是很关键的资源
6
Libaray/Preferences:保存应用的保有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的安装消息,iTunes会自动备份该目录。

一、iOS沙盒机制介绍   

(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目录 例如:
NSArray
arry2=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);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];

1)概念:

   
每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与任何应用放入文件
系统隔离,ios系统不容许访问

    其他使用的行使沙盒,但在ios8中已经开放访问(extension)

链接:
www.jianshu.com/p/2944233ebac4
http://blog.csdn.net/zhangkongzhongyun/article/details/45056969

2)extension是ios8新开放的一种对多少个定点系统区域的展开机制,它可以在早晚水准上弥补ios的沙盒机制对使用间的通信限制 

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

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

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

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

         该目录下的文书,iTunes不会共同该目录,华为重启时该目录下的文本会丢掉。   

    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)将数据写入用户配置沙盒目录 例如: 

1  //保存选择结果到沙盒
2 [[NSUserDefaults standardUserDefaults] setObject:_result forKey:@"userPrama"]; 
 //立即同步数据  
[[NSUserDefaults standardUserDefaults] synchronize];  

4 //从沙盒取出保存结果
5 NSString *result = [[NSUserDefaults standardUserDefaults] valueForKey:@"userPrama"];

 

相关文章