iOS DeveloperiOS 开发每天分享优质文章iOS Developer

iOS 沙盒简介 路径获取

2017-04-28  本文已影响57人  漂泊海上的大土豆

1.沙盒结构

出于安全考虑,iOS 应用都只能访问自己沙盒内的文件,想要其它权限都要预先申请。

sandbox.png

2.如何访问:

 NSString *path = NSHomeDirectory();

上面的代码得到的是应用程序目录的路径,
在该目录下有三个文件夹:DocumentsLibrarytemp以及一个.app包。
该目录下就是应用程序的沙盒,应用程序只能访问该目录下的文件夹。


NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
FOUNDATION_EXPORT NSArray<NSString *> *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde);

此方法用于查找目录,返回指定范围内的指定名称的目录的路径集合
已经习惯了苹果爸爸的黑魔法,Cocoa 最糟糕的 API 之一。
它返回了一个包含用户文档目录作为第一个元素的数组,
还好 NSArray -firstObject 可以轻松拿到地址。

参数:

3.一些常见用法:

// 获取沙盒主目录路径
NSString *homeDir = NSHomeDirectory();

// 获取Documents目录路径
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

// 获取Library的目录路径
NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

// 获取Caches目录路径
NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

// 获取tmp目录路径
NSString *tmpDir =  NSTemporaryDirectory();

参考资料:

上一篇 下一篇

猜你喜欢

热点阅读