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

はい、私はばかです。私は実際にこれを最初に試しましたが、存在しない相対ディレクトリに書き込もうとしたため、役に立たない「これを実行できません」スタイルのエラーが発生し、インターネット全体に行き渡り、最終的にスタックオーバーフローが発生しました...(あなたFileManager#createDirectoryAtPathを使用する必要があります!残念ながら、自動パス作成はありません。)

参考までに、当然のことながら、xcodebuildを介して実行している場合は、ハードドライブ上の任意の場所にファイルを自由に書き込むことができます。サンドボックス化は発生しません。ただし、シミュレーターで実行する場合は、別の話になる可能性があります。

于 2010-01-21T23:19:13.793 に答える