【发布时间】:2010-07-19 20:27:39
【问题描述】:
我正在为命令行工具开发 GUI (Cocoa),以使其更易于人们使用。尽管它是一个 GUI,但我想将输出显示到 NSTextView。问题是输出量很大,并且该工具执行的分析可能需要数小时/数天。
通常,在使用 NSTask 和 NSPipe 时,只有在任务完全完成后才会显示输出(这可能需要很长时间)。我想要做的是将输出拆分并逐渐显示(例如每分钟更新一次)。
到目前为止,我已将数据的处理放在一个单独的线程中:
[NSThread detachNewThreadSelector:@selector(processData:) toTarget:self withObject:raxmlHandle];
- (void)processData:(id)sender {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *startString = [results string];
NSString *newString = [[NSString alloc] initWithData:[raxmlHandle readDataToEndOfFile] encoding:NSASCIIStringEncoding];
[results setString:[startString stringByAppendingString:newString]];
[startString release];
[newString release];
[pool release];
}
这一切对我来说仍然是一种巫术,我不确定如何应对这一挑战。
您有什么建议或建议吗?
谢谢!
【问题讨论】:
标签: cocoa user-interface macos