基本上我有一个视图控制器作为设置页面。单元格调用“killall backboardd”函数重新启动跳板。
然而,自从从objective-c重写我的应用程序以使用swift后,我发现我遇到了一些错误。
第一个是不推荐使用system()命令。好。因此建议使用posix_spawn API代替。好的,对此没有任何了解,没有真正需要研究。所以我决定只使用NSTask。我在旧版本中使用它很多,为什么不用这个呢?
我将运行时标头添加到Foundation.framework文件夹中。清理项目,重新启动xcode只发现我有警告。 “使用未解析的标识符'NSTask'
我有导入基金会这么错误吗?以下是我正在使用的内容:
let task = NSTask() <----ERROR
task.launchPath = "/usr/bin"
task.arguments = ["killall backboardd"]
let pipe = NSPipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
if let output = NSString(data: data, encoding: NSUTF8StringEncoding) {
print(output)
}
task.waitUntilExit()
let status = task.terminationStatus
print(status)
看起来文件似乎甚至连接了过去的情况。任何帮助将不胜感激。
答案 0 :(得分:0)
AFAIK。 NSTask在iOS SDK中不存在。 也许试试objc_getClass(&#34; NSTask&#34;);绕过编译检查。