Mac os NSTask的用法

2019-07-05  本文已影响0人  流年小书

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

上一篇下一篇

猜你喜欢

热点阅读