以下代码正常运行,直到我升级到OSX Lion。它调用了一个外部命令并将输出保存到NSString中。
我不知道它为什么停止工作。有什么想法吗?
-(NSString *) rawResponse{
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/sbin/scselect"];
NSPipe *pipe = [NSPipe pipe];
[task setStandardError:pipe];
[task launch];
NSData *data = [[pipe fileHandleForReading] readDataToEndOfFile];
[task waitUntilExit];
[task release];
NSString *result = [[[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"The returned value is: %@", result);
return result;
}
答案 0 :(得分:0)
我刚刚发现了。我正在将NSPipe分配给标准错误,因为在Snow Leopard / usr / sbin / scselect中将其输出发送到那里,而不是标准输出。显然,Lion中的新版本修复了此问题(并破坏了我的代码)。