【发布时间】:2012-09-01 23:18:06
【问题描述】:
我有一个使用fprintf 打印到标准输出的C 函数,并且我试图在UIAlertView 中显示标准输出的内容。我的代码如下:
NSFileHandle *stdoutFileHandle = [NSFileHandle fileHandleWithStandardOutput];
NSData *stdoutData = [stdoutFileHandle availableData];
NSString *stdoutString = [[NSString alloc] initWithData:stdoutData encoding:NSASCIIStringEncoding];
UIAlertView *stdoutAlert = [[UIAlertView alloc] initWithTitle:@"STDOUT OUTPUT" message:stdoutString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[stdoutAlert show];
我在运行代码时遇到以下错误。
由于未捕获的异常“NSFileHandleOperationException”而终止应用程序,原因:“[NSConcreteFileHandle availableData]:错误的文件描述符”
当我将 [stdoutFileHandle availableData] 替换为 [stdoutFileHandle readDataToEndOfFile] 时,我得到了一个等效的错误。
【问题讨论】:
-
您真正需要做的是使用
select和一个UNIX 文件描述符。
标签: objective-c ios stdout nsfilehandle