zoukankan      html  css  js  c++  java
  • iOS开发——沙箱

      iOS的沙盒机制,应用只能访问自己应用目录下的文件。可以形象的理解为,一个个应用,就相当于一个个的碉堡,各是各的空间,

      iphone沙箱模型的有三个文件夹,documents,tmp,Library。有时开发时要求我们保存一些数据在本地,这就用到了。

      1、Documents 目录:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

      2、Library 目录:这个目录下有两个子目录:Caches 和 Preferences
      Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
      Caches 目录:存放缓存文件,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下。

      3、tmp 目录:提供一个即时创建临时文件的地方,但不需要持久化,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候清除。

    获取这些目录路径的方法:

       // 获取沙盒主目录路径

        NSString *homePath = NSHomeDirectory();

        NSLog(@"homePath:%@",homePath);

        

        // 获取Documents目录路径

        NSArray *paths1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        NSString *docPath = [paths1 objectAtIndex:0];

        NSLog(@"docPath:%@",docPath);

        // 获取Caches目录路径

        NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

        NSString *cachesPath = [paths2 objectAtIndex:0];

        NSLog(@"cachesPath:%@",cachesPath);

        // 获取tmp目录路径

        NSString *tmpPath =  NSTemporaryDirectory();

        NSLog(@"tmpPath:%@",tmpPath);

  • 相关阅读:
    远程调用丢失请求头与定义RequestInterceptor
    RabbitMQ 高级特性
    注解@ConfigurationProperties使用方法
    Redisson
    分布式缓存
    DEA 无法显示 Run Dashboard 的解决方法
    node多版本切换
    springboot整合amazonS3,封装上传文件接口
    Maven报错:The packaging for this project did not assign a file to the build artifact
    Nodejs介绍及npm工具使用
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/5345746.html
Copyright © 2011-2022 走看看