我怎样才能重定向stdout?

时间:2015-01-13 17:36:42

标签: ios objective-c xcode

我尝试使用here中接受的答案重定向标准输出,但通知似乎没有被调用。

我对NSLog输出不感兴趣,但在系统输出到控制台。

不知道这是否是正确的方法,但我无法找到实现此目的的任何其他工作示例,
而这一点(即使目前还很难处理)似乎是我发现的所有结果中最简单的(大多数人使用了很多我不熟悉的C语法)。

我正在开发一个供个人使用的应用程序,所以不要关心App Store 目标iOS是7.1.2,我使用Xcode 5,如果它有任何问题 目前我正在iOS 7.1模拟器上测试它。

以下是我尝试的代码:

// In view did load
NSPipe *pipe = [NSPipe pipe] ;
pipeReadHandle = [pipe fileHandleForReading] ;
dup2([[pipe fileHandleForWriting] fileDescriptor], fileno(stdout)) ;

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: NSFileHandleReadCompletionNotification object: pipeReadHandle] ;
[pipeReadHandle readInBackgroundAndNotify] ;  

我还实施了handleNotification:方法,但我没有将其包含在此处,因为它无关紧要,因为它根本没有被调用....

上面的代码用于OS X,我是否需要为iOS使用修改内容?

为什么它没有工作的任何想法,或有关更好的方法来实现它的建议?

0 个答案:

没有答案