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];//如果,不写这句,过一段时间,程序也会走保存数据,这里就是防止程序突然中断,这里是立即保存数据(简单的不复杂的数据)
UI:沙盒的更多相关文章
- iOS开发——UI进阶篇(十一)应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档
1.iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3 Core Data 2.应用沙盒每 ...
- UI基础:DataPersistent.沙盒
沙盒是系统为每一个应用程序生成的一个特定文件夹,文件夹的名字由一个十六进制数据组成,每一个应用程序的沙盒文件名都是不一样的,是由系统随机生成的. 沙盒主目录: NSString *homePath = ...
- IOS开发-UI学习-沙盒机制&文件操作
苹果为软件的运行提供了一个沙盒机制 每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件 Documents:苹果建议将程序中 ...
- <转>iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097 //——2012-12-11日更新 获取"产品付费数量等于0 ...
- iOS如何获取网络图片(三)有沙盒的
沙盒 沙盒简介 默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件 Documents:苹果建议将程序中建立的或在程 ...
- iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍
一.快速生成沙盒目录的路径 沙盒目录的各个文件夹功能 - Documents - 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度.涂鸦软件的绘图 - 目录中的文件会被 ...
- iOS篇之有沙盒缓存
内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时 ...
- 【转】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程
http://blog.csdn.net/xiaominghimi/article/details/6937097 //——2012-12-11日更新 获取"产品付费数量等于0这个问题& ...
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】
转的别人的 看到很多童鞋问到,为什么每次都返回数量等于0?? 其实有童鞋已经找到原因了,原因是你在 ItunesConnect 里的 “Contracts, Tax, and Banking”没有完成 ...
随机推荐
- iOS时钟,秒针扫秒样式
昨天做一个时钟小demo,发现了一些问题. 描述能力有限,我封装好了一个时钟框架,朋友们可以参考 https://github.com/qianlishun/ClockView 点击这里可以 ...
- 【Tomcat】如何优化tomcat配置(从内存、并发、缓存4个方面)优化
一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_O ...
- Catch The Caw——(广度优先搜索的应用,队列)
抓住那头牛(POJ3278)农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000).农夫有 ...
- for-else和wihle-else组合用法
当for和else组合一起使用的时候,for循环正常执行完毕,会执行else语句,否则,不会执行else语句 for i in range(10): if i == 2: break else: pr ...
- P2820 局域网 洛谷
https://www.luogu.org/problem/show?pid=2820 题目背景 某个局域网内有n(n<=100)台计算机,由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成 ...
- Intersection of Two Linked Lists(链表)
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...
- 通过socket过去本地ip,port和远端ip,port
struct sockaddr addr;struct sockaddr_in* addr_v4;int addr_len = sizeof(addr); //获取local ip and portZ ...
- Linux下的lds链接脚本简介(一)
转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml 一. 概论 每一个链接过程都由链接脚本(linker ...
- c++多线程编程:常见面试题
题目:子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码 子线程与主线程必有一个满足条件(flag == ...
- 总结一下CSS定位
在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之 CSS position属性值 absolute ...