zoukankan      html  css  js  c++  java
  • IOS 沙盒机制

    IOS中的沙盒机制(SandBox)是一种安全体系,出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问)

    一、沙盒中几个主要的目录

    每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档):
    
    

    应用沙盒一般包括以下几个文件目录:
    1 应用程序包:包含所有资源文件和可执行文件 2 Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录 3 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也可能会自动清理该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。 4 Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。 5 Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,一般存放体积比较大,不是很重要的资源 6 Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的设置信息,iTunes会自动备份该目录。
    1、获取程序的Home目录
    NSString *homeDirectory = NSHomeDirectory();  
    NSLog(@"path:%@", homeDirectory);  
    
    2、获取document目录
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *path = [paths objectAtIndex:0];  
    NSLog(@"path:%@", path);   
    
    3、获取Cache目录
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
    NSString *path = [paths objectAtIndex:0];  
    NSLog(@"%@", path);  
    
    4、获取Library目录
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);  
    NSString *path = [paths objectAtIndex:0];  
    NSLog(@"%@", path);  
    
    5、获取Tmp目录
    NSString *tmpDir = NSTemporaryDirectory();  
     NSLog(@"%@", tmpDir); 
    
    6、写入文件
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
        NSString *docDir = [paths objectAtIndex:0];  
        if (!docDir) {  
            NSLog(@"Documents 目录未找到");          
        }  
        NSArray *array = [[NSArray alloc] initWithObjects:@"内容",@"content",nil];  
        NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];  
        [array writeToFile:filePath atomically:YES];
    
    7, 写入文件
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
        NSString *docDir = [paths objectAtIndex:0];  
        NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];  
        NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath];  
        NSLog(@"%@", array); 
  • 相关阅读:
    vue中使用v-bind="$attrs"和v-on="$listeners"进行多层组件监听
    钉钉小程序开发遇到的坑
    promise、async、await、settimeout异步原理与执行顺序
    js获取url参数值的几种方式
    ES6解构赋值
    2019年前端面试题
    浏览器兼容问题踩坑收集
    react+antd分页 实现分页及页面刷新时回到刷新前的page
    无侵入埋点
    CSS学习笔记(三)空白符和换行
  • 原文地址:https://www.cnblogs.com/joesen/p/5189193.html
Copyright © 2011-2022 走看看