这是Peter Hosey的Mercurial仓库的一个分支,修复了这个错误。
NSTask的替代品。应该适用于大多数(最终所有)目的。
如果NSTask中有您需要而这个版本没有实现的功能,请向问题跟踪器提交请求。如果您实现了它,请提交补丁。
来自测试程序
PRHTask *task = [PRHTask taskWithProgramName:@"echo" arguments:@"I am the very model of a modern Major-General", nil];
task.accumulatesStandardOutput = YES;
task.successfulTerminationBlock = ^(PRHTask *completedTask) {
NSLog(@"Completed task: %@ with exit status: %i", completedTask, completedTask.terminationStatus);
NSLog(@"Accumulated output: %@", [task outputStringFromStandardOutputUTF8]);
};
task.abnormalTerminationBlock = ^(PRHTask *completedTask) {
NSLog(@"Task exited abnormally: %@ with exit status: %i", completedTask, completedTask.terminationStatus);
};
[task launch];
一些NSTask的功能尚未实现。(您可以帮助!)这些包括