在下面的代码中,我可以使用调试器检查self和childView的值。
[self.navigationController pushViewController:childView animated:YES];
但是,我无法看到self.navigationController的值。我怎样才能检查它是否为零?
答案 0 :(得分:2)
只需添加以下行:
UINavigationController* navController = self.navigationController;
然后设置一个断点,或者你想要做的其他事情。
答案 1 :(得分:2)
原因是因为navigationController
是一个属性,所以你不能只检查它;你必须向财产所有者发送一个getter消息。在调试器中,这是非常昂贵的,特别是如果它崩溃或以其他方式失败,加上它可能总是有副作用(例如,在Core Data对象中出现错误,延迟加载某些东西,或者在另一个ivar中更改某些状态),因此调试器不会随便这样做。
您必须使用调试器控制台显式请求消息:
po [self navigationController]
(我不知道它是否会让你在那里使用属性访问语法。它们之间没有区别,这是问题的根源:属性访问是一个Objective-C消息,正如我上面所描述的那样,除非你明确告诉它,否则调试器不会执行此操作。)
答案 2 :(得分:1)
您可以随时执行(self.navigationController == nil)
。