zoukankan      html  css  js  c++  java
  • iOS沙盒机制介绍,Block 的介绍

    一、iOS沙盒机制介绍 (转载)

    1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问

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

    2)extension是ios8新开放的一种对几个固定系统区域的拓展机制,它可以在一定程度上弥补ios的沙盒机制对应用间的通信限制

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

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

     NSString *sandBox=NSHomeDirectory();

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

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

             该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。

        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];
    复制代码
     

    ==============Block 的介绍=================

    1)概念: block 是一种数据类型,类似于C语言中没有名字的函数,可以接收参数,也可以返回值与C函数一样被调用

         封装一段代码 可以在任何地方调用 block 也可以作为函数参数,以及函数返回值

  • 相关阅读:
    非父子组件通信
    vue中的导航守卫
    vue中做出购物车的功能
    vuex初使用(写的当然是最简单的应用啦)
    封装了一个电商放大镜移入放大的功能,适用于VUE
    moment.js插件的简单上手使用
    Vue中如何将数据传递到下一个页面(超级简单哒)
    java Math
    java Arrays
    java static
  • 原文地址:https://www.cnblogs.com/csj007523/p/4680035.html
Copyright © 2011-2022 走看看