我有一个iOS应用程序,在单元测试(XCTests)中我需要执行一些终端命令,如
xcrun simctl shutdown [simulator-UDID]
我创建了这个函数来运行shell脚本
func commandLine(launchPath: String, arguments: [String]) -> String {
// Used to be NSTask() before Swift 3
let process = Process()
// Set the task parameters
process.launchPath = "/usr/bin/env"
process.arguments = ["pwd"]
// Create a Pipe and make the process
// put all the output there
let pipe = Pipe()
process.standardOutput = pipe
// Launch the process
process.launch()
// Get the data
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = NSString(data: data, encoding: NSUTF8StringEncoding)
print(output!)
}
然而,我收到错误说
使用未解析的标识符'过程'
在Swift 4中,某些研究结果Process()
已重命名为CommandLine
,但更改为CommandLine
会导致不同的错误
'CommandLine'无法构造,因为它没有可访问的初始值设定项