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