• UI:沙盒


    IOS平台下,沙盒的本质就是一个文件夹

    每一款IOS应用安装在手机上都会自动的生成一个文件夹。之所以叫沙盒,就是因为这个文件夹是每次运行随机产生的文件夹。沙盒文件夹是独立的,每个应用之间不能互相访问。A应用不能访问B应用的沙盒,是一个安全设置。

    沙盒文件包括三个文件夹{Documents、 Library、 tmp}作用

     Documents 对于一款应用,想长久存储的数据,都放在这个文件夹下面,但是不能预留的太多(一般是80M,如果过多,在上线的时候容易被拒绝)

     Library:

        Library/Preference 存放用户的一些偏好设置,如用户名,密码,是否是第一次启动

        Library/Caches  缓存文件夹,对于这个文件夹,通过应用去下载的视频、音频、小说、图片

     tmp: 文件夹是一个临时的问价夹,一般是存放我们应用程序所下载的压缩包,比如我们下载的Zip压缩包.

     上面的三个文件夹是系统自动生成的三个文件夹,用户没有权限去删除。但是我们可以自己创建一个自己能够清除缓存的应用,我们可以删除自己创建的文件夹。

    应用程序包的路径:里面包含了我们应用程序加载时候所需要的资源。(上线项目中要上传的一个包)一般是一个 .ipa格式

        //获取沙盒文件夹的路径

        NSString * homePath = NSHomeDirectory();

        NSLog(@"%@",homePath);

        //获取应用程序的包

        NSString * boundlePath = [[NSBundle mainBundle] bundlePath];

        NSLog(@"boundlePath:_>%@",boundlePath);

        //获取沙盒文件夹的 Documents 文件夹

        //第一个参数:对应搜索的文件夹,就是要查找的文件夹

        //第二个参数:是要查找的文件夹所在的范围,用户域中去查找

        //第三个参数:设置是否显示一个详细的路径。如果是就给一个 YES

        //之前用于 PC (OS X电脑)端,可以同时有多个用户,所以我们获取的是所有的用户的文件路径。而 IOS 平台下,用户只有一个,所以在这里我们获取的路径,就只有一个。

        NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

        NSLog(@"documentsPath_>%@",documentsPath);

        //获取其他的文件夹路径

        //获取 Library 路径  它有两个子文件夹:Caches  Preferences

        NSString * LibaryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)firstObject];

        NSLog(@"获取 Library 路径_>%@",LibaryPath);

        //获取沙盒中 Library 中的 Caches 文件夹路径

        NSString * caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

        NSLog(@"获取沙盒中 Library 中的 Caches 文件夹路径_>%@",caches);

        //获取包中的资源路径

        NSString * filePath = [[NSBundle mainBundle] pathForResource:@"某文件名字" ofType:@"文件类型"];

        NSLog(@"获取包中的资源路径_>%@",filePath);

        //获取沙盒中 Preferences 文件夹路径

        //获取 tmp 文件夹

        NSString * tmpPath = NSTemporaryDirectory();

        NSLog(@"获取 tmp 文件夹_>%@",tmpPath);

        //NSUserDefaults 操作的是沙盒文件夹下的 Library 文件夹的 Preference 文件夹

        NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];

        //存储用户名

        [defaults setObject:@"User" forKey:@"UserName"];

        [defaults setObject:@"pasword" forKey:@"PasWord"];

        [defaults setBool:YES forKey:@"FirstLunch"];//用来存储第一次启动,系统会自动的走一个保存的方法

        [defaults synchronize];//如果,不写这句,过一段时间,程序也会走保存数据,这里就是防止程序突然中断,这里是立即保存数据(简单的不复杂的数据)

  • 相关阅读:
    误报的java.sql.SQLException: Parameter number 21 is not an OUT parameter
    mysql bin-log和innodb_log的关系
    线上mysql内存持续增长直至内存溢出被killed分析(已解决)
    mysql服务器io等待高定位与分析
    mysql 5.6到percona 5.6小版本升级
    mysql内存消耗分析
    centos 7安装mysql报错-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory
    windows 7文件误删shift+delete后找回
    oschina github使用指南
    couchbase单向同步
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/4819954.html
Copyright © 2020-2023  润新知