为什么currentDirectoryPath在IDE下返回不同的结果而没有它?

时间:2011-05-15 08:58:01

标签: objective-c ide working-directory

使用下面的代码我有一个奇怪的麻烦

NSString * pth = [[[NSFileManager defaultManager] currentDirectoryPath] copy];

如果该代码在IDE下运行它可以正常工作,我就像那样

/用户/用户/桌面/ iShutdown /建造/释放

但如果我在没有IDE的情况下运行该代码,只需启动我的独立应用程序 我在日志中看到pth只包含“/”

为什么呢?如何在独立模式下获得相同的结果?

1 个答案:

答案 0 :(得分:0)

初始工作目录将取决于应用程序的启动方式,您不应该对这将是什么做出任何假设。对于Finder启动它通常会/正如您所见,而对于Xcode启动,它通常与可执行文件位于同一目录中(尽管您可以在可执行文件的设置中更改此内容)。有各种其他方式来启动应用程序,例如,从命令行开始,所以初始工作目录几乎可以是用户想要的任何东西。

如果您只想查找某个特定文件,该文件位于相对于您的应用的特定位置,例如您的应用程序需要的数据文件,然后您应该只获取应用程序包的路径并使用它,而不是工作目录。