Iphone 查看直接在模拟器中运行的应用程序的NSLog,而不是通过Xcode

Iphone 查看直接在模拟器中运行的应用程序的NSLog,而不是通过Xcode,iphone,ios,ios-simulator,xcode4.2,Iphone,Ios,Ios Simulator,Xcode4.2,当我没有通过Xcode运行代码时,是否有任何方法可以查看在iOS模拟器中运行的应用程序的控制台日志?我直接从模拟器中打开应用程序。我可以在某处看到NSLog语句打印吗?可以。以下是一段引自: 在模拟器中运行应用程序时,您可以访问应用程序的控制台 登录控制台应用程序(位于/Applications/Utilities中) : 已重定向NSLog() 有时,您可能希望将NSLog()输出重定向到一个文件,以便更方便地检查它NSLog()。以下代码将其重定向到桌面上的文件: int fd =

当我没有通过Xcode运行代码时,是否有任何方法可以查看在iOS模拟器中运行的应用程序的控制台日志?我直接从模拟器中打开应用程序。我可以在某处看到NSLog语句打印吗?

可以。以下是一段引自:

在模拟器中运行应用程序时,您可以访问应用程序的控制台 登录控制台应用程序(位于
/Applications/Utilities
中)

:

已重定向
NSLog()

有时,您可能希望将
NSLog()
输出重定向到一个文件,以便更方便地检查它
NSLog()。以下代码将其重定向到桌面上的文件:

    int fd = creat("/Users/dave/Desktop/my_log",
                       S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
    close(STDERR_FILENO);
    dup(fd);
    close(fd);
    NSLog(@"this will be written to my_log");
这只会影响来自应用程序的
NSLog()
调用


我可以设法在MAC OS的“控制台”应用程序中查看日志。

Organizer是为设备工作的,而不是为模拟器工作。嗯,无论是谁写这篇文章,都需要学习POSIX的知识;他们被动地依赖于下一个开放fd为2的概念;这并不能保证工作,如果另一个线程同时打开一个文件,它实际上会做错误的事情。第一次
close
调用和
dup
应替换为
dup2(fd,STDERR\u FILENO)