NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"data.plist"];
和
return [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
该文件存储在我的文档文件夹中。
答案 0 :(得分:3)
不,他们不是。前者返回应用程序的Documents目录中名为data.plist的文件的路径,后者返回应用程序包中名为data.plist的文件的路径,其中包含所有应用程序的资源,可执行文件等。
答案 1 :(得分:2)
来自NSSearchPathForDirectoriesInDomains
的{{3}}
创建一个路径字符串列表 指定的目录 域。该列表按顺序排列 你应该搜索的 目录。如果expandTilde为YES, 如图所示,倾斜度得到扩展 stringByExpandingTildeInPath。
来自NSBundle
方法的documentation pathForResource:ofType:
该方法首先寻找匹配 非本地化的资源文件 指定的资源目录 束。 (在Mac OS X中,此目录 通常称为资源,但在 iOS,它是主要的捆绑目录。) 如果匹配的资源文件不是 发现,它然后看起来在顶层 任何特定语言的 “.lproj”目录。 (搜索 订购特定语言 目录对应于用户的 偏好。)它没有递归 通过任何其他子目录 这些地点。
因此,前者在目录中查找文件,后者在包中查找。这些可能不一致。