NSTask不在Swift中工作

时间:2015-11-16 19:30:09

标签: swift2 xcode7 xctest

我正在编写一个快速的XCTest,我需要评估一个子流程。我想调用终端,将AppleScript的路径传递给终端并执行它。

我已经在swift测试文件中导入了UIKit和Foundation。当我写一个像let task = NSTask()这样的常量时,NSClass没有在NSObject中被引用,结果我得到一条消息,它是

  

使用未解析的unidentifier NSTask

如果我写了引用的let pipe = NSPipe()并且有效。导入UIkit和Foundation后,为什么NSTask无法访问?

1 个答案:

答案 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!)