我正在尝试使用 NSLog 语句来确定我的应用程序的执行流程,所以我在 autoreleasepool 之后的 main.m 中有一个:
@autoreleasepool {
NSLog(@"app started"); //added breakpoint here, but debugger stopped at next line
BOOL runningTests = NSClassFromString(@"XCTestCase") != nil; //stopped here instead of nslog.
...
现在,该声明无处可寻。我试过搜索控制台,使用“command +/”为模拟器调出一个控制台,并在 system.log 中搜索,但仍然一无所获。为了查看我是否正在通过 main 我在日志语句上添加了一个断点并且它被命中,或者至少调试器在日志之后的语句上停止了(如代码片段所示)。关于应用程序的生命周期,有什么我不了解的地方吗,例如,当应用程序启动时,日志是否会在某个时候被清除?我在我希望调用的其他函数中也有其他 NSLog 语句,但它们也没有打印出来。为什么我的日志没有打印到控制台?
旁注:
我的控制台确实处于事件状态,我正在查看的输出是“所有输出”。
还有其他方法可以确定我的应用程序的执行流程吗?这是一个非常大的应用程序,有很多 Storyboard和 View Controller 。我所说的执行流程是指首先点击哪些 View 、从这些 View 调用哪些函数、应用程序如何在应用程序加载时确定下一个 View (取决于用户是否已登录)等...
提前致谢!
最佳答案
NSlog 已执行但隐藏在许多其他控制台调试输出中以解决此问题:
In Xcode8:
Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables
添加 OS_ACTIVITY_MODE
并检查它,但不要添加任何值。
关于ios - NSLog 输出无处可寻,Xcode 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40005020/