2015-12-02 63 views
0

基本上我有一個視圖控制器,充當設置頁面。這些單元格稱爲「killall backboardd」功能來重新啓動跳板。NSTask和iOS Swift 2.0

但是,由於重寫我的應用程序從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

AFAIK NSTask不會在iOS版SDK存在 也許嘗試objc_getClass(「NSTask」);。繞過編譯檢查

+1

它本身不,你是對的,ho wever我正在越獄設備上開發。因此,使用NSTask作爲私人頭文件對我來說可以,因爲我無需提交給Apple。儘管如此,蘋果仍然可以找出如何編譯應用程序,而不會將我的應用程序的大小增加到快速庫。 – ChrisOSX

+0

@ChrisOSX這就是爲什麼我建議只是去運行時,以避免所有這些開銷 –

+0

@ChrisOSX這是如何最終得到解決? 'let task = objc_getClass(「NSTask」)'? –