在objective-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中,那么shell假定它们是“open”的参数。如果我将它添加到字符串中,就在foobarbinary之后(例如:@“foo / foobar.app / foobarbinary -someargument”),那么“open”假定文件的名称是“foo / foobar.app / foobarbinary - someargument”。
那么如何将参数传递给参数? :S
EDIT。我尝试在数组中使用--args命令。但似乎foobarbinary没有收到我在远处指定的参数--args。 :S任何人都有一个我可以看的例子吗?
答案 0 :(得分:1)
open
命令不允许您这样做。如果你想将参数传递给foobarbinary,你必须直接启动它。