0
私はこのコードを使用して端末コマンドを実行しています。これまでのところ、これはいつも働いています。今度はそれについて文句を言う:端末コマンドがSwiftで動作しない
The file /Users/meee/Library/Developer/Xcode/DerivedData/nameOfXCodeProject-baelzqzfuiydshbtbifxkywekybq/Build/Products/Debug/Chrome.app does not exist.
私はargsでコマンドを実行しようとすると失敗した。それはターミナルの魅力のように働く。何が問題なの?
let strEx = "open -a /Applications/Google Chrome.app --args argsToSet=\"MYARGS\""
strEx.runAsCommand()
extension String {
func runAsCommand() -> String {
let pipe = NSPipe()
let task = NSTask()
task.launchPath = "/bin/sh"
task.arguments = ["-c", String(format:"%@", self)]
task.standardOutput = pipe
let file = pipe.fileHandleForReading
task.launch()
if let result = NSString(data: file.readDataToEndOfFile(), encoding: NSUTF8StringEncoding) {
return result as String
}
else {return "--- Unable to initialize string from file data ---"}
}
}
編集:これは私が今使っているものです。
let pipe = NSPipe()
let task = NSTask()
task.launchPath = "/bin/sh"
task.arguments = [ "-c", "open", "-a","/Applications/Google Chrome.app","--args","myargs=ARGS"]
task.standardOutput = pipe
let file = pipe.fileHandleForReading
task.launch()
if let result = NSString(data: file.readDataToEndOfFile(), encoding: NSUTF8StringEncoding) {
print(result as String)
}
else {print("--- Unable to initialize string from file data ---")}
for argum in task.arguments!{
print(argum)
}
-c、-a ...と同じものが出力されます。
停止するための値。私は引数の配列でほとんど運がないです。 task.arguments = ["-c"、 "open"、 "-a"、 "/ Applications/Google Chrome.app"、 " - args"、 "myargs = ARGS"]のようになります。何も起こっていない、と私はなぜわからない。 – sanjihan