IOS沙盒路径相关

1.NSSearchPathForDirectories:InDomains:方法需要解释下,其声明如下:    

FOUNDATION_EXPORT NSArray *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde);

该方法用于返回指定范围内的指定名称的目录的路径集合。有三个参数:directoryNSSearchPathDirectory类型的enum值,表明我们要搜索的目录名称,比如这里用NSDocumentDirectory表明我们要搜索的是Documents目录。如果我们将其换成NSCachesDirectory就表示我们搜索的是Library/Caches目录。domainMaskNSSearchPathDomainMask类型的enum值,指定搜索范围,这里的NSUserDomainMask表示搜索的范围限制于当前应用的沙盒目录。还可以写成NSLocalDomainMask(表示/Library)、NSNetworkDomainMask(表示/Network)等。expandTildeBOOL值,表示是否展开波浪线~。我们知道在iOS中~的全写形式是/User/userName,该值为YES即表示写成全写形式,为NO就表示直接写成“~”。

NSSearchPathDomainMask    NSUserDomainMask是指/user//目录,NSLocalDomainMask,官方文档说是Local to the current machine—the place to install items available to everyone on this machine.还是不太好理解,应该就是跟NSUserDomainMask相对的一个概念,NSUserDomainMask是针对当前用户的,而NSLocalDomainMask是针对所有用户的,比如Library目录,如果是针对用户的,就是/user//Library,而对所有用户的就是/Library。

NSNetworkDomainMaskt是指/Network目录下的文件夹。

NSSystemDomainMask是系统目录,现在的Mac在/System目录下只有一个Library目录,这个目录下包含了系统运行的程序和文件。并且所有的SystemDomain的文件夹都是只读的。

其实这个enum定义的是domain的概念,不能简单的理解为某个文件夹下的文件,比如NSSystemDomainMask中的Application目录是/Applications,Document目录是/System/Library/Documentation,其实这就没什么意义,因为这个文件夹根本不存在。

2.Myapp.app  [[NSBundle mainBundle] bundlePath] 

3.NSTemporaryDirectory() //    ~/tmp/

4.NSHomeDirectory() //doucement根目录(其下包含document、library、tmp)

5.[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];  //同上

注意2和4、5的区别:分别输出一下,自行比对

2:/Users/jiuxiaoming/Library/Developer/CoreSimulator/Devices/D046A800-26C8-4ACB-8884-BFF0AB19FD37/data/Containers/Bundle/Application/80DD0709-A2D0-47F2-8E47-978806C3C110/Day1CoreData.app

5:/Users/jiuxiaoming/Library/Developer/CoreSimulator/Devices/D046A800-26C8-4ACB-8884-BFF0AB19FD37/data/Containers/Data/Application/6AAAB6A9-35C2-4FE4-8BE8-1DB38ADE8662/Documents

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授...
    Anticipate_91阅读 571评论 0 3
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,689评论 30 472
  • 前言 默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。 1.Document...
    月上楼阁阅读 1,516评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,790评论 19 139
  • 在这纷纷扰扰的世间,绝大多数人都不过是其中一棵微末的尘埃。 站在人群,我毫不起眼,普普通通。与人相处,我不玩心计,...
    点点凡尘阅读 284评论 0 1

友情链接更多精彩内容