为什么NSSearchPathForDirectoriesInDomains会返回NSArray?

时间:2014-06-23 11:02:35

标签: ios objective-c

为什么NSSearchPathForDirectoriesInDomains会返回NSArray而不是NSString并找到路径?

2 个答案:

答案 0 :(得分:4)

根据NSSearchPathDirectory和NSSearchPathDomainMask,可能存在多个目录。例如,我可以在我的主目录中有一个应用程序文件夹,这是我的用户域。并且还在System Domain中有一个Applications文件夹。以及Network Domain中的应用程序文件夹。所以,如果我这样做:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSAllDomainsMask, YES);

它将返回一系列路径。一个用于“用户域”中“应用程序”文件夹的路径,一个用于“系统域”中的文件夹,另一个用于网络域中。

答案 1 :(得分:3)

这是Foundation Release Notes (10.8 and earlier)

  

在OS X v10.5“Leopard”中,可能有多个版本   开发人员工具软件(Xcode,Interface Builder等)   一次安装在您的系统上。也可以拥有它们   安装在未以“/ Developer”路径为根的位置   文件系统。结果,从中返回的目录   通过传递NSSearchPathForDirectoriesInDomains   NSDeveloperApplicationDirectory或NSDeveloperDirectory常量可以   不返回对应于实际位置的东西   已安装的开发人员工具。

另请注意,该方法接受域掩码,因此每个域都可以有不同的目录。

相信(我不确定)它只会在OSX下返回多个,而在iOS下它只返回一个值。