我想从应用程序执行 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?

最佳答案

删除 @"load " 中的尾随空格。

数组中的每个对象都是任务的单个参数。没有必要
添加空格以分隔参数(或引用参数)。

10-08 02:07