我正在调试我的iOS应用程序,因为我有查看推送/解除通话,我想确保我的堆栈中没有任何我不会期望的观点。是否可以在Xcode调试器中看到这个?
答案 0 :(得分:8)
你可能会发现lldb通过'recursiveDescription'来解救。只需在您对视图层次结构感兴趣的位置设置断点。例如,如果您想要窗口中的所有内容,则可以键入
(lldb) po [[[[UIApplication sharedApplication] windows] firstObject] recursiveDescription]
或者,我经常发现在调试视图时,我最感兴趣的是特定视图的层次结构。在这种情况下,您可以直接连接到您感兴趣的代码中的点(例如viewDidAppear:方法)并键入:
(lldb) po [self.view recursiveDescription]
注意:使用Xcode 6 Apple添加了实时视图调试,您可以从调试栏访问它。
答案 1 :(得分:0)
由于所有视图控制器都应由导航控制器管理,您应该可以执行以下操作:
NSArray * controllerArray = [[self navigationController] viewControllers];
for (UIViewController *controller in controllerArray){
//Code here.. e.g. print their titles to see the array setup;
NSLog(@"%@",controller.title);
}
答案 2 :(得分:0)
还有Reveal.app提供比Xcode实时视图调试更多的功能,具有更好的UI并与AppCode集成。