1

我在使用下面的代码时遇到了一个奇怪的问题

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

如果该代码在 IDE 下运行,它工作正常,我有这样的 pth

/Users/user/Desktop/iShutdown/build/Release

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

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

4

1 回答 1

0

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

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

于 2011-05-15T09:23:23.970 回答