Objective-C相对文件路径

时间:2016-01-09 09:57:03

标签: objective-c xcode

我有一个xcode / objective-c项目,旨在与命令行一起使用(特别是iOS或mac)。该项目位于一个名为Prototype的文件夹中,在这个文件夹中我有一个文本文件:data.txt。我正在尝试创建一个方法来将data.txt的内容作为NSString返回。我已使用以下代码成功完成此操作:

  function resolveUser(authService, $q) {
    var parseUser = authService.parseUser();
    if (parseUser.authenticated()) {
        return $q.when("AUTH_OK");
    } else {
        return $q.reject("AUTH_REQUIRED");
    };
  }

这种方法有效,但我想用相对路径而不是绝对路径访问该文件。例如,在Eclipse中,我将使用路径" src / data.txt"。我可以采用类似的方法在xcode / objective-c中创建相对文件路径吗?

2 个答案:

答案 0 :(得分:6)

您可以简单地使用相对路径,但问题是当前工作目录可能不是您所期望的。

当前的工作目录实际上只与在命令行shell中工作有关。用户为了方便起见将其设置为他们想要的方式。然后,它们调用命令并将路径作为参数传递,并且命令和路径参数的路径可以是相对的或绝对的。程序不能依赖工作目录作为自己的位置,也不能依赖任何其他特定位置。

当然,当您从Xcode运行程序时,您不能依赖于任何特定位置的工作目录。

如果需要,可以使用-[NSFileManager changeCurrentDirectoryPath:]设置当前工作目录,但之后会破坏用户提供的相对路径查找文件的功能。您可以使用[[NSBundle mainBundle] bundlePath]获取包含命令行工具的目录的路径。

答案 1 :(得分:0)

您可以从此SO问题中获取当前的工作目录。

Getting Current Directory in Objective C