Как передать аргумент аргументу при выполнении команды оболочки из XCode? - PullRequest
0 голосов
/ 22 марта 2012

В объективе-c я могу сделать следующее:

NSTask* foo = [NSTask alloc]init];
[foo setLaunchPath:@"/usr/bin/open"];

[foo setArguments:[NSArray arrayWithObjects:
                                @"/foo/foobar.app/foobarbinary,
                                nil]];  
// Arguments to the command: the name of the
// Applications directory

[foo launch];
// Run the command

[foo release];

Проблема в том, что если foobarbinary принимает аргументы командной строки, как мне их передать? :) Если я добавлю их в NSArray, то оболочка предполагает, что они являются аргументом «open». Если я добавлю его в строку сразу после foobarbinary (например: @ "foo / foobar.app / foobarbinary -someargument"), то "open" предполагает, что именем файла является "foo / foobar.app / foobarbinary - someargument».

Так как мне передать аргумент аргументу? : S

EDIT. Я попытался использовать команду --args в массиве. Но, похоже, что foobarbinary не получает аргументы, которые я указал далеко --args. : S У кого-нибудь есть пример, на который я могу взглянуть?

1 Ответ

1 голос
/ 22 марта 2012

Команда open не позволит вам сделать это. Если вы хотите передать аргументы в foobarbinary, вы должны запустить его напрямую.

...