【发布时间】:2009-08-12 11:29:43
【问题描述】:
我正在编写一个小应用程序来跟踪本地单声道网站。我写这个主要是为了自己使用和玩 xcode
要启动服务器,我运行以下代码:
[task setLaunchPath: @"/usr/bin/xsp2"];
NSArray *arguments = [NSArray arrayWithObjects: @"--root", [[document selectedSite] valueForKey:@"path"], @"--nonstop" ,nil];
[task setArguments: arguments];
NSLog(@"argument: %@", arguments);
NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput:pipe];
NSFileHandle *file = [pipe fileHandleForReading];
[task launch];
NSData *inData = nil;
while ((inData = [file availableData]) && [inData length]) {
NSLog(@"%@", [[NSString alloc] initWithData:inData encoding:NSUTF8StringEncoding]);
}
[[document selectedSite] setValue:[NSNumber numberWithInt:1] forKey:@"active"];
[task release];
NSLog(@"opened site");
这会导致无限循环,因为终端永远不会停止写入(我猜?)。所以我的问题是,我如何停止循环?如果我不清楚,请发表评论。
【问题讨论】:
标签: objective-c cocoa terminal