Как я могу записать в текущий каталог в iPhone SDK при запуске xcodebuild из командной строки? - PullRequest
1 голос
/ 21 января 2010

Кто-нибудь знает, как получить путь к текущему каталогу при запуске xcodebuild (в основном, каталог проекта) и записать в него файлы? Я пытаюсь сохранить результаты некоторых модульных тестов на диск из моего кода obj-c, но я бы предпочел не помещать их глубоко в путь документа приложения, если это возможно. Возможно, я смогу добавить «../../ ..» и т. Д. К пути к документу, но я надеялся, что может быть более элегантный метод.

* Это относится только к симулятору, конечно ... но, возможно, даже симулятор пытается поддерживать изолированную программную среду файловой системы iPhone? Мне не повезло писать в другие случайные места на моем Mac, поэтому я подозреваю, что это может быть так.

Спасибо за ваш вклад!

1 Ответ

0 голосов
/ 22 января 2010

Я понял это - ответ смущающе прост. С акцентом на «неловкое».

Если вы используете что-то вроде методов writeToFile от NSString, все, что вам нужно сделать, это подумать о своем пути относительно того места, откуда вы запускаете xcodebuild - NSSearchPathForDirectoriesInDomains не требуется.

Пример:

(если работает в ~ / src / awesomeapp)

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

Будет выводить на: ~ / SRC / awesomeapp / awesome.file

Да, я идиот. Я на самом деле пробовал это сначала , но я пытался записать в относительный каталог, который не существовал, что привело к бесполезной ошибке в стиле «Не могу сделать это», которая привела меня во все сети и в конечном итоге к stackoverflow ... (вам нужно использовать FileManager # createDirectoryAtPath! К сожалению, автоматического создания пути нет.)

К вашему сведению, вы можете свободно записывать файлы на свой жесткий диск при запуске через xcodebuild - песочница не возникает. Если вы запустите симулятор, это может быть другая история.

...