Использование launchctl из NSTask

Я хочу выполнить launchctl из приложения.

Для этого я использую следующий код,

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/launchctl"];

NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"load ", @"/Users/XYZ/com.XYZ.plist", nil];
[task setArguments: arguments];

[task launch];

Выдает ошибку, launchctl: unknown subcommand "load "

Однако, когда я запускаю команду из терминала, она выполняется правильно

>launchctl load /Users/XYZ/com.XYZ.plist 

Какая тут разница и как может работать NSTask?


person RLT    schedule 17.04.2013    source источник


Ответы (1)


Удалите завершающий пробел в @"load ".

Каждый объект в массиве является единственным аргументом задачи. Нет необходимости добавлять пробелы для разделения аргументов (или заключать аргументы в кавычки).

person Martin R    schedule 17.04.2013
comment
Мне хотелось совершить небольшое самоубийство. :D - person RLT; 17.04.2013