如何解决使用NSTask在目标C中运行SH脚本比从Terminator直接执行脚本要慢
我创建了一个sh / Python脚本作为执行文件。但是,当我使用NSTask在Objective C程序中通过单击按钮运行此脚本时,进度时间比直接在MacOS Terminal中执行脚本要慢得多。
我从stackoverlfow中读取了一些信息,以使用nice -n,但这无济于事。 任何人都知道通过Objective C执行脚本时如何加快处理过程。
要执行的脚本代码:
- (NSString *)runCommand:(NSString*) script{
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/sh"];
NSArray *arguments = [NSArray arrayWithObjects:
@"-c",[NSString stringWithFormat:@"%@",script],nil];
[task setArguments:arguments];
NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput:pipe];
NSPipe* stdErrPipe = nil;
stdErrPipe = [NSPipe pipe];
[task setStandardError: stdErrPipe];
NSFileHandle *file = [pipe fileHandleForReading];
NSFileHandle *filErr = [stdErrPipe fileHandleForReading];
[task launch];
NSData *data = [file readDataToEndOfFile];
NSData *dataError = [filErr readDataToEndOfFile];
[task waitUntilExit];
NSInteger exitCode = task.terminationStatus;
if (exitCode != 0)
{
NSString *outputErr = [[NSString alloc] initWithData:dataError encoding:NSUTF8StringEncoding];
NSLog(@"Error!");
return [@"Error!" stringByAppendingString:outputErr];
}
NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return output;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。