我正在编写一个快速的XCTest,我需要评估一个子流程。我想调用终端,将AppleScript的路径传递给终端并执行它。
我已经在swift测试文件中导入了UIKit和Foundation。当我写一个像let task = NSTask()
这样的常量时,NSClass没有在NSObject中被引用,结果我得到一条消息,它是
使用未解析的unidentifier NSTask
如果我写了引用的let pipe = NSPipe()
并且有效。导入UIkit和Foundation后,为什么NSTask无法访问?
答案 0 :(得分:3)
在swift 3.0中Apple改变了NSTask API
现在执行cmd是:
// Create a process (was NSTask on swift pre 3.0)
let task = Process()
// Set the task parameters
task.launchPath = "/bin/ls"
task.arguments = ["-laF@" , filePath]
// Create a Pipe and make the task
// put all the output there
let pipe = Pipe()
task.standardOutput = pipe
// Launch the task
task.launch()
// Get the data
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: String.Encoding.utf8)
print(output!)