gpt4 book ai didi

objective-c - NSTask 未返回

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

我使用 NSTask 如下:

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

[task setLaunchPath:@"/bin/bash"];

NSMutableString *script = ... // actual script here, works fine

NSArray *args = [NSArray arrayWithObjects:@"-l",
@"-c",
script,
nil];

[task setArguments: args];

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

[task launch];

NSData *data = [[pipe fileHandleForReading] readDataToEndOfFile];

[task waitUntilExit];
[task release];

到目前为止工作正常,唯一的问题是,不知何故,在第一次达到这一点后不再调用该方法。如果我不启动该任务,则一切正常,因此该任务似乎以某种方式阻止了进一步的执行。

有人知道为什么会这样吗?任何提示表示赞赏!

最佳答案

通过运行循环来更好地控制任务,您可以在循环中读取数据、检查是否超时等:

while ([task isRunning])
{
NSData* data = [[pipe fileHandleForReading] availableData];
if ([data length] > 0)
{
//process the data
}

// Run current runloop in default mode; check the timeout; interrupt the task if needed
}

关于objective-c - NSTask 未返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7662046/

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