为什么NSSearchPathForDirectoriesInDomains会返回NSArray而不是NSString并找到路径?
答案 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下它只返回一个值。