Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSTextView中的Shell命令输出_Cocoa_Nstextview_Nstask - Fatal编程技术网

Cocoa NSTextView中的Shell命令输出

Cocoa NSTextView中的Shell命令输出,cocoa,nstextview,nstask,Cocoa,Nstextview,Nstask,谢谢你的帮助。此执行命令的结果显示在我的Xcode控制台中。在NSTextView中显示命令结果的最佳方式是什么 NSString *commandToRun = @"~/Library/webREF/ffmpeg -nostats -i ~/Desktop/input.wav - filter_complex ebur128 -f null -"; NSTask *task; task = [[NSTask alloc] init]; [task setLaun

谢谢你的帮助。此执行命令的结果显示在我的Xcode控制台中。在NSTextView中显示命令结果的最佳方式是什么

NSString *commandToRun = @"~/Library/webREF/ffmpeg -nostats -i ~/Desktop/input.wav -  filter_complex ebur128 -f null -";



    NSTask *task;
    task = [[NSTask alloc] init];
    [task setLaunchPath: @"/bin/sh"];

    NSArray *arguments = [NSArray arrayWithObjects:
                          @"-c" ,
                          [NSString stringWithFormat:@"%@", commandToRun],
                          nil];
    NSLog(@"run command: %@",commandToRun);
    [task setArguments: arguments];

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

    NSFileHandle *file;
    file = [pipe fileHandleForReading];

    [task launch];
添加如下内容:

…
NSFileHandle *file;
file = [pipe fileHandleForReading];
NSMutableData *data = [[NSMutableData alloc] init];
NSData *inData = nil;
[task setStandardOutput:pipe];
[task launch];
[task waitUntilExit];

while ((inData = [file availableData]) && [inData length]) {
    [data appendData:inData];
}

[file closeFile];
[task release];
[pipe release];

NSString *result = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
[data release];

// somewhere we have an NSTextView textView
[textView setString: result];

谢谢,但我没法用。此外,该项目设置为使用ARC。我没有
ffmpg
,因此无法测试您的确切命令,但其他输出到stdOut的命令对我有效。再次感谢。命令按预期运行。控制台输出证实了这一点。我在文本视图中没有得到任何输出-我一直在回答这个问题,没有任何实际的代码,但最终做了一个小项目来测试它。我以为我也遇到了同样的问题,但我不小心弄坏了我的
textView
的“线路”。一旦连接正确,这确实对我有效(使用不同的shell命令)。嗨@Paul,我想你对我答案的编辑被拒绝了。也许可以尝试更新你的问题?在任何情况下,我认为如果您可以测试
结果
字符串是否实际包含所需的结果,那么您可以将问题缩小到文本视图的某种连接或设置问题。