2012-03-22 68 views
0

在Objective-C,我可以做到以下幾點:如何從Xcode執行shell命令時將參數傳遞給參數?

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

編輯。我試着在數組中使用--args命令。但似乎foobarbinary沒有收到我在--args旁邊指定的參數。 :S任何人都有我可以看的例子嗎?

回答

1

open命令不會讓你這樣做。如果你想傳遞參數給foobarbinary,你必須直接啓動它。

+0

它的作品謝謝!我沒有想到你可以直接調用這個二進制文件。 :S必須等待兩分鐘才能接受答案。 :) – 2012-03-22 14:12:42

相關問題