您的位置:澳门402永利com > 关于计算机 > 浅谈iOS沙盒目录

浅谈iOS沙盒目录

发布时间:2019-11-26 14:10编辑:关于计算机浏览(144)

    iOS--浅谈iOS沙盒目录,ios--ios沙盒

    初藳地址:

    出于安全思索,iOS系统的沙盒机制规定每一个应用都只可以访谈当前沙盒目录上边包车型大巴文件(也可以有例外,举例系统通信录能在客户授权的景观下被第三方使用访问卡塔尔国,这几个准则把iOS系统的密闭性表现的不亦乐乎。

    后生可畏、沙盒中多少个关键的目录

    每种沙盒上边都有相近的目录结构,如下图所示(出自苹果官方文书档案卡塔尔国: 图片 1 各种应用的沙盒目录都以常常的,主要包涵图中所示的4个目录:

    1、MyApp.app

    ①寄存内容 该目录包括了应用程序自身的数量,满含能源文件和可推行文件等。程序运转之后,会凭仗供给从该目录中动态加载代码或能源到内部存款和储蓄器,这里运用了lazy loading的思维。 ②整个目录是只读的 为了幸免被窜改,应用在装置的时候会将该目录签字。非越狱意况下,该目录中剧情是回天无力纠正的;在越狱设备上若是改换了目录内容,对应的签字就可以被改变,这种情状下苹果官方网站描述的结局是应用程序将不能够运维,笔者没实施过。 ③是不是会被iTunes同步 否

    2、Documents

    ①寄存内容 大家能够将应用程序的数据文件保存在该目录下。不过这个数据类型只限于不可再生的多寡,可再生的数据文件应该贮存在Library/Cache目录下。 ②是或不是会被iTunes同步 是  

    3、Documents/Inbox

    ①寄存内容 该目录用来保存由外界应用诉求当前应用程序张开的文本。 譬喻大家的接收叫A,向系统注册了三种可展开的文件格式,B应用有贰个A扶持的格式的文件F,而且申申请调离用A张开F。由于F当前是在B应用的沙盒中,大家掌握,沙盒机制是不允许A访谈B沙盒中的文件,由此苹果的消除方案是讲F拷贝大器晚成份到A应用的Documents/Inbox目录下,再让A打开F。 ②是或不是会被iTunes同步 是

    4、Library

    ①存放内容 苹果指出用来贮存在默许设置或别的意况音讯。 ②是还是不是会被iTunes同步 是,可是要除了Caches子目录外

    5、Library/Caches

    ①寄存内容 主就算缓存文件,客商接收进程中缓存都足以保存在此个目录中。前边说过,Documents目录用于保存不可再生的文本,那么那一个目录就用于保存那个可再生的公文,举例网络央浼的多寡。鉴于此,应用程序平日还供给担负删除这一个文件。 ②是还是不是会被iTunes同步 否。   6、Library/Preferences ①贮存内容 应用程序的溺爱设置文件。大家应用NSUserDefaults写的设置数据都会保留到该目录下的三个plist文件中,那正是所谓的写道plist中! ②是或不是会被iTunes同步 是   7、tmp ①寄放内容 各类有时文件,保存应用再度运维时不须求的文书。並且,当使用不再需求那个文件时应当主动将其除去,因为该目录下的事物随时有非常的大大概被系统清理掉,前段时间已知的意气风发种可能清理的缘故是系统磁盘存款和储蓄空间不足的时候。 ②是或不是会被iTunes同步 否    二、获取首要目录路线的章程

    1、沙盒目录

    NSLog(@"%@",NSHomeDirectory()); 
    

    出口结果:

            /var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A 

     

    2、tmp

    NSLog(@"%@",NSTemporaryDirectory());  
    

    输出结果:

    /private/var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A/tmp/

     

    3、Myapp.app

    NSLog(@"%@",[[NSBundle mainBundle] bundlePath]);  
    

     

    输出结果:

    /var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A/PhoneCall.app  

    4、Documents

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *path = [paths objectAtIndex:0];  
    NSLog(@"%@",path);  
    

     

    输出结果:

    /var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A/Documents

    那边运用的NSSearchPathForDirectoriesInDomains方法须要表明下,其声称如下:

    FOUNDATION_EXPORT NSArray *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde); 
    

    该措施用于重回钦赐范围内的钦命名称的目录的门路集结。有多少个参数:

    • directory

    NSSearchPathDirectory类型的enum值,表明大家要搜索的目录名称,譬如此处用NSDocumentDirectory注解大家要探究的是Documents目录。要是我们将其换来NSCachesDirectory就代表大家搜索的是Library/Caches目录。

    • domainMask

    NSSearchPathDomainMask类型的enum值,钦赐搜索范围,这里的NSUserDomainMask表示寻觅的限定约束于当下使用的沙盒目录。仍是可以够写成NSLocalDomainMask(表示/Library卡塔尔、NSNetworkDomainMask(表示/Network卡塔尔国等。

    • expandTilde

    BOOL值,表示是还是不是实行波浪线~。大家领悟在iOS中~的全写格局是/User/userName,该值为YES即表示写成全写情势,为NO就象征一向写成“~”。

     

    三、参照他事他说加以考察文书档案

    1、苹果官方文书档案

    原文地址: 出于安全着想,iOS系统的沙盒机制规定每一种应用都...

    本文由澳门402永利com发布于关于计算机,转载请注明出处:浅谈iOS沙盒目录

    关键词:

上一篇:没有了

下一篇:没有了