我正在編寫一個小應用來跟蹤本地單點網站。我主要寫這爲我所用,並在Xcode從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");
這將導致一個無限循環,因爲終端永不停止寫作(我猜?)。所以我的問題是,我如何停止循環?如果我不清楚,請發表評論。
感謝您抽出時間離開Quinn的答案,併爲泄漏提示:) 當我使用readDataToEndOfFile我的應用程序還扼流圈(旋轉比薩死亡輪)。 當我在終端上運行的代碼寫入文本 xsp2 聽力上地址的後續片段:0.0.0.0 Root目錄:/用戶/的Mads 偵聽端口:8080(非安全) 命中返回停止服務器。 – 2009-08-12 18:57:13