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];//如果,不写这句,过一段时间,程序也会走保存数据,这里就是防止程序突然中断,这里是立即保存数据(简单的不复杂的数据)

 

posted @ 2015-09-18 17:42  ywda  阅读(262)  评论(0编辑  收藏  举报