4

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 はどのように機能しますか?

4

1 に答える 1

7

の末尾のスペースを削除し@"load "ます。

配列内の各オブジェクトは、タスクの単一の引数です。引数を区切る (または引数を引用する) ためにスペースを追加する必要はありません。

于 2013-04-17T09:49:25.817 に答える