【发布时间】:2016-10-12 17:41:22
【问题描述】:
我正在尝试使用 NSLog 语句来确定我的应用程序的执行流程,所以我在 main.m 中就在 autoreleasepool 之后有一个:
@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,我在日志语句上添加了一个断点并且它被击中,或者至少调试器在日志之后的语句上停止(如代码 sn-p 所示)。关于应用程序生命周期是否有一些我不明白的地方,例如在启动应用程序时是否会清除日志?我还希望在其他函数中调用其他 NSLog 语句,但它们也没有打印出来。为什么我的日志没有打印到控制台?
旁注:
我的控制台确实处于活动状态,我正在查看的输出是“所有输出”。
还有其他方法可以确定我的应用程序的执行流程吗?这是一个非常大的应用程序,有很多故事板和视图控制器。通过执行流程,我的意思是首先点击哪些视图,从这些视图调用哪些函数,当应用加载时应用如何确定下一个视图(取决于用户是否登录)等等......
提前致谢!
【问题讨论】:
-
你确定这行代码被调用了吗?使用调试器。在行上设置断点,看看是否被调用。
-
@rmaddy 是的,我做到了,但我想我在描述中模糊了我在哪里添加了断点。我用断点的位置更新了代码。
-
是否有一些宏或某些东西将对
NSLog的调用转换为无操作? -
所以是的,我确定正在调用代码。或者至少在它被称为哈哈之后的那一行。
-
我将如何找出是否存在所说的宏?
标签: ios objective-c xcode8