在Xcode中调试时,我可以在应用程序中看到我的视图层次结构吗?

时间:2014-07-14 01:05:45

标签: ios objective-c xcode uiview

我正在调试我的iOS应用程序,因为我有查看推送/解除通话,我想确保我的堆栈中没有任何我不会期望的观点。是否可以在Xcode调试器中看到这个?

3 个答案:

答案 0 :(得分:8)

你可能会发现lldb通过'recursiveDescription'来解救。只需在您对视图层次结构感兴趣的位置设置断点。例如,如果您想要窗口中的所有内容,则可以键入

(lldb) po [[[[UIApplication sharedApplication] windows] firstObject] recursiveDescription]

或者,我经常发现在调试视图时,我最感兴趣的是特定视图的层次结构。在这种情况下,您可以直接连接到您感兴趣的代码中的点(例如viewDidAppear:方法)并键入:

(lldb) po [self.view recursiveDescription]

注意:使用Xcode 6 Apple添加了实时视图调试,您可以从调试栏访问它。 Real Time View Debugging Xcode 6

答案 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);
}

从这里采取:How to iterate all the UIViewControllers on the app

答案 2 :(得分:0)

还有Reveal.app提供比Xcode实时视图调试更多的功能,具有更好的UI并与AppCode集成。