应用程序可以为NSDocumentDirectory提供多个路径

时间:2016-09-08 09:32:28

标签: ios objective-c nsdocumentdirectory

在任何情况下,当使用以下代码访问NSArray时,应用可以在NSDocumentDirectory中拥有多个路径:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

我只是对事情感到好奇..你们可以和我分享你的经历吗?

2 个答案:

答案 0 :(得分:1)

严格来说,您可以获得多个路径,因为您可以传递多个域。

如果您传递单个域,则会得到一个包含单个路径的数组。

但Apple建议不再使用此功能。

来自文档:

  

您应该考虑使用返回网址的NSFileManager方法URLsForDirectory:inDomains:URLForDirectory:inDomain:appropriateForURL:create:error:,这是首选格式。

答案 1 :(得分:0)

不,这将始终返回documentDirectory的一个路径!!

根据目录的不同类型,可能会有所不同,例如,

 NSString *path = NSTemporaryDirectory();

上面的行将给出临时目录的路径。

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

上面的数组也有一个路径,但这是NSDocumentationDirectory的路径。

NSSearchPathForDirectoriesInDomains为指定域中的指定目录创建路径字符串列表。该列表按您应搜索目录的顺序排列。

您可以获取文档目录的内容或子目录或任何目录,如

  NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES);

NSArray *contentOfDocDirectory = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:pathArr[0] error:nil];

NSLog(@"content of document directory : %@",contentOfDocDirectory);