Принятие решения о параметрах командной строки в приложениях какао - PullRequest
2 голосов
/ 11 февраля 2010

У меня есть приложение Cocoa, которое будет вызываться с параметрами или без параметров в командной строке.

Я хотел бы принять решение по параметрам, полученным в приложении, т. Е. Если получен специальный параметр, я хотел бы вызвать действие над ним. Есть ли что-нибудь для этого ??

Приветствия

Ответы [ 2 ]

4 голосов
/ 11 февраля 2010

Конечно, ваша программа имеет функцию main(), как любая программа на Си. По умолчанию, который поставляется с новым проектом Cocoa, просто вызывается NSApplicationMain(), но вы можете выполнять другие действия, если хотите.

Если вы хотите легко получить доступ к информации командной строки из другого места вашей программы, вы можете использовать _NSGetArgv(), _NSGetArgc(), _NSGetEnviron() и _NSGetProgname(). Они объявлены в crt_externs.h:

extern char ***_NSGetArgv(void);
extern int *_NSGetArgc(void);
extern char ***_NSGetEnviron(void);
extern char **_NSGetProgname(void);

Вот сообщение в блоге об этих функциях и ссылка на NSApplicationMain документацию .

1 голос
/ 13 февраля 2010

Возможно, вам будет проще получить доступ к NSArgumentDomain по умолчанию:

NSDictionary *const args = [[NSUserDefaults standardUserDefaults]
                             volatileDomainForName:NSArgumentDomain];

Это будет обрабатывать аргументы вида -NSZombieEnabled YES.Другие формы аргументов (такие как -NSZombieEnabled=YES) могут быть проигнорированы;Я не проверял и не смотрел на источник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...