博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sandbox沙盒
阅读量:5956 次
发布时间:2019-06-19

本文共 2687 字,大约阅读时间需要 8 分钟。

一、Sandbox沙盒特点:

         1、应用程序之间相互隔离;

         2、应用程序只能访问自己本地的内容,不能访问其他app文件目录结构(越狱手机除外);

         3、为应用程序构建一个完整的运行空间;

         4、应用程序有自己的缓存和数据备份。

 

二、沙盒目录结构:

          1、Documnets;

           2、HellWord.app

           3、Library;

           4、Tmp;

三、app所在沙盒Sandbox目录:

       模拟器:

            ~/Library/Application Support/iPhone Simulator/6.0/Applications/8F08C873-76C7-406F-AEAD-B499137787DD

         真机:

           /var/mobile/Applications/8F08C873-76C7-406F-AEAD-B499137787DD

四、获取App Home目录

      获取Home目录:

                 NSString *homeDirectory = NSHomeDirectory();

          结果类似:

                ~/Library/Application Support/iPhone Simulator/6.0/Applications/8F08C873-76C7-406F-AEAD-B499137787DD

五、HelloWorld.app 目录

                NSString *appPath =[ [NSBundle MainBundle] BundlePath];

             结果类似:

              ~/Library/Application Support/iPhone Simulator/6.0/Applications/8F08C873-76C7-406F-AEAD-B499137787DD/HelloWorld.app

六、获取Documents目录

            NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoey,NSUserDomainMask,YES);

            NSString *path = [paths objectAtIndex:0];

            结果类似:

                ~/Library/Application Support/iPhone Simulator/6.0/Applications/8F08C873-76C7-406F-AEAD-B499137787DD/Documents

七、获取Library 目录

            NSArray *path = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);

            NSString *path = [paths objectAtIndex:0];

           结果类似:

             ~/Library/Application Support/iPhone Simulator/6.0/Applications/8F08C873-76C7-406F-AEAD-B499137787DD/Library

八、获取Caches目录

            NSArray *path = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);           

           NSString *path = [paths objectAtIndex:0];

           结果类似:

九、获取Tmp目录

            

             NSString *tmpDir = NSTemporaryDirectory();

           结果类似:

              ~/Library/Application Support/iPhone Simulator/6.0/Applications/8F08C873-76C7-406F-AEAD-B499137787DD/Tmp

十、获取应用程序程序包中资源文件路径的方法:

例如获取程序包中一个图片资源(apple.png)路径的方法:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@”apple” ofType:@”png”];
UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];

  //1)第一种情况,文件图标是黄色的,文件夹是假的,都会拷贝到HelloWorld.app 中

    //而且文件名称不能重名
    NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"1" ofType:@".jpg"];
    NSLog(@"image is %@",imagePath);
    
    NSString *imagePath2 = [[NSBundle mainBundle ]pathForResource:@"2.jpg" ofType:nil];
    NSLog(@"image2 is %@",imagePath2);
    
    //Users/L-ios/Library/Developer/CoreSimulator/Devices/F5988D84-CB68-4DEC-805E-414D905304BE/data/Containers/Bundle/Application/528B83A0-F896-4759-8B57-D4EE2DCDBBE6/各种目录获取.app/image2/1.jpg
    //2)第二种情况,文件夹图标是绿色的,这个文件真实存在,内容拷贝到HelloWorld.app中,
    NSString *image2Path = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"jpg" inDirectory:@"image2"];
    NSLog(@"image2path is %@",image2Path);
    
    NSString *image2Path2 = [[NSBundle mainBundle]pathForResource:@"2.jpg" ofType:nil inDirectory:@"image2"];
    NSLog(@"image2Path2 is %@ ",image2Path2);

转载于:https://www.cnblogs.com/dianxianzhijian/p/5248726.html

你可能感兴趣的文章
C#实现的等额本息法、按月付息到期还本法、一次性还本付息法
查看>>
北京Uber优步司机奖励政策(10月12日~10月18日)
查看>>
RTImageAssets 自动生成 AppIcon 和 @2x @1x 比例图片
查看>>
Codeforces Round #277.5 (Div. 2)B——BerSU Ball
查看>>
【转】Linux删除文件未释放空间问题处理
查看>>
数据库设计三大范式
查看>>
BZOJ2388 : 旅行规划
查看>>
这个帖子要收藏,以后用得着--python 实时获取子进程输出
查看>>
多重对数函数
查看>>
第1讲 Redis部署与基本操作
查看>>
msyql在查询字段中的所有记录,不重复
查看>>
Java 开源博客 —— Solo 0.6.9 发布时间!
查看>>
JS类的封装及实现代码
查看>>
HDOJ 3480 Division
查看>>
BeanFactory、ApplicationContext、ApplicationContextAware区别
查看>>
关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)
查看>>
HDU2586 How far away ?(LCA模板题)
查看>>
点我吧工作总结(技术篇) Velocity
查看>>
IOS-线程(GCD)
查看>>
Ehcache详细解读(转)
查看>>