我正在尝试弄清楚如何让这个NSFileHandleReadToEndOfFileCompletionNotification.工作,但是我被困在如何‘注册’piece of code from a previous question的问题上
这是我的代码:
NSTask *topTask = [NSTask new];
[topTask setLaunchPath:@"/usr/bin/top"];
[topTask setArguments:[NSArray arrayWithObjects:@"-s", @"1", @"-l", @"3600", @"-stats", @"pid,cpu,time,command", nil]];
NSPipe *outputPipe = [NSPipe pipe];
[topTask setStandardOutput:outputPipe];
[topTask launch];..。它运行得很好,直到我添加了以下内容:
[[outputPipe fileHandleForReading] readToEndOfFileInBackgroundAndNotify];..。这会导致程序冻结。当我添加这个的时候:
NSString *outputString = [[[NSString alloc] initWithData:[[notification userInfo] objectForKey:NSFileHandleNotificationDataItem] encoding:NSUTF8StringEncoding] autorelease];..。代码不能编译,我得到了!警告
'notification' undeclared. 在这件事上的任何帮助都会让我感激不尽。
发布于 2010-08-25 21:43:33
在命令行中使用这些参数运行top将导致它不断打印统计数据,并且永远不会写入EOF。这就是-readToEndOfFileInBackgroundAndNotify永远运行的原因。
听起来你可能只想阅读第一次迭代,然后终止任务。
至于错误,听起来像是在包含该行的方法中没有名为notification的变量。
https://stackoverflow.com/questions/3565673
复制相似问题