gpt4 book ai didi

objective-c - 连续运行多个 NSTask

转载 作者:行者123 更新时间:2023-12-03 17:43:17 26 4
gpt4 key购买 nike

我需要使用 NSTask 按顺序运行多个命令,并且想知道什么是判断任务是否已完成的好方法,以便我可以继续执行下一个命令。我正在使用“sox”(我将其包含在我的应用程序包中)使用输入音频文件创建临时音频文件,然后需要将这些临时音频文件合并到一个文件中。进程流程示例(不是实际命令):

1) songA > tempA

2) songB > tempB

3)combine tempA tempB > songC

我使用以下代码来完成第一个命令:

    NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"songA", @"-f", @"-S", @"-G", @"-V", @"-b", @"24", @"-r", @"384k", @"tempA", nil];

NSString *path=[[NSBundle mainBundle] pathForResource:@"sox" ofType:nil];

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

[task setStandardInput:[NSPipe pipe]];

[task setLaunchPath:path];

[task setArguments: arguments1];

NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[task launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];

NSLog (@"stuff :\n%@", string);

[string release];
[task release];

假设我需要在该进程完成后再执行两个 NSTask 进程(使用前一进程的输出),那么检测一个进程已完成以便我可以继续执行下一个进程的最佳方法是什么.

谢谢。

最佳答案

可能没完全理解,但是

[task waitUntilExit];

没有完成这项工作?

关于objective-c - 连续运行多个 NSTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6004930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com