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
网友评论