NSTask setLaunchPath Objective-C Cocca - PullRequest
1 голос
/ 09 июля 2010

Это очень простой вопрос. У меня есть скрипт в той же папке, что и приложение Какао. Я не могу установить путь к нему правильно для setLaunchPath для NSTask. Помогите пожалуйста.

У меня есть папка с именем Project. Внутри него существует несколько папок, но нам нужны только две: Classes (исходные файлы для приложения Cocoa здесь) и Ruby (это папка на сервере ruby). Я пытаюсь позвонить Ruby/script/server. Я предполагал, что это будет что-то вроде ./Ruby/script/server или Ruby/script/server, но оба не правы.

Спасибо.

РЕДАКТИРОВАТЬ: я думаю, что я на самом деле спрашиваю, есть ли способ получить доступ к папке, где находятся исходные файлы или проект, используя специальный символ или ярлык, потому что по умолчанию он идет в папку /tmp.

1 Ответ

3 голосов
/ 09 июля 2010

Текущий каталог (в смысле Unix) в приложении не гарантируется. Путь к самому приложению можно получить, получив основной пакет приложений по

NSBundle*mainBundle=[NSBundle mainBundle];

и затем получить свой путь

NSString*path=[mainBundle bundlePath];

Однако пожалуйста, не делайте этого; Вы не сможете распространять свое приложение без дополнительных инструкций по размещению файлов здесь и там. Вместо этого поместите свой код Ruby внутрь yourApp.app/Contents/Resources/. Это можно сделать, включив код Ruby в XCode и убедившись, что он установлен для копирования в приложение. Файлы в этом каталоге Resources можно получить следующим образом:

NSString*path=[mainBundle pathForResource:@"rubyServer" ofType:@"rb"];

Чтобы узнать больше о структуре пакета, прочитайте Руководство по программированию пакета .

...