1

有谁知道在运行xcodebuild(主要是项目目录)时如何获取当前目录的路径并向其中写入文件?我正在尝试将一些单元测试的结果从我的 obj-c 代码保存到磁盘,但如果可能的话,我宁愿不要将它们转储到应用程序的文档路径深处。我也许可以将 '../../..' 等附加到文档路径,但我希望可能有更优雅的方法。

*这当然只与模拟器有关……但也许模拟器也试图维护 iPhone 文件系统沙箱?我没有运气写到我的 Mac 上的其他随机位置,所以我怀疑可能是这种情况。

感谢您的输入!

4

1 回答 1

0

我想通了——答案非常简单。强调“尴尬”。

如果您使用类似 NSString 的 writeToFile 方法,您需要做的就是将您的路径视为相对于您运行 xcodebuild 的任何位置 - 不需要 NSSearchPathForDirectoriesInDomains。

例子:

(如果在 ~/src/awesomeapp 中运行)

[myString writeToFile:@"awesome.file" atomically:YES encoding:NSUTF8StringEncoding error:&error];

将输出到:~/src/awesomeapp/awesome.file

是的,我是个白痴。我实际上首先尝试了这个,但是我试图写入一个不存在的相对目录,从而导致了一个无用的“不能这样做”样式错误,导致我在互联网上四处走动,最终导致 stackoverflow ......(你需要使用 FileManager#createDirectoryAtPath!没有自动创建路径,很遗憾。)

仅供参考,应该很明显,当您通过 xcodebuild 运行时,您可以自由地将文件写入硬盘驱动器上的任何位置 - 不会发生沙盒。但是,如果您在模拟器中运行,情况可能会有所不同。

于 2010-01-21T23:19:13.793 回答