Mac开发

Mac OS NSTask的用法

2018-06-20  本文已影响8人  流年小书

NSTask主要用于执行可执行文件exec或者调用第三方app,最近在使用,写点经验(感觉哪儿有问题多提意见...)

启动task:

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

[task setLaunchPath:cmd];//可执行文件路径

[task setArguments:parameter];//参数

[task launch];//启动task

[task waitUntilExit];//直到程序运行结束,相应程序才会往下执行

以下是task一些属性:

 resume   恢复task

 suspend  暂停task

 terminate  停止

以下是打印task启动的可执行文件里面的数据:

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

上一篇 下一篇

猜你喜欢

热点阅读