Mac os NSTask的用法

NSTask主要用于執行可執行文件exec或者調用第三方app,最近在使用,寫點經驗(感覺哪兒有問題多提意見...)

直接上代碼:

NSTask *task= [[NSTask alloc]init];

[task setLaunchPath:cmd];//可執行文件路徑

? [task setArguments:parameter];//參數

? [task launch];//啟動task

? [task waitUntilExit];//直到程序運行結束,相應程序才會往下執行

//以下是一些屬性:

//? ? resume? 恢復task

//? ? suspend? 暫停task

//? ? terminate? 停止


以下是打印可執行文件里面的數據:

NSPipe *outputPipe = [NSPipe pipe];

[task setStandardOutput:outputPipe];

[task setStandardError:outputPipe];

NSFileHandle *readHandle = [outputPipe fileHandleForReading];

NSData *outputData = [readHandle readDataToEndOfFile];




NSString *outputString = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding];

NSLog(@"%@",outputString);


問題來了,一切準備就緒,開始驗證時,有時候會打印出launch path not accessible',說路徑無法訪問,解決辦法:Capabilities --> App Sandbox 關閉就可以了

附上demo:https://github.com/huangqizai/Mac_Task

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容