Se si desidera visualizzare la gerarchia vista in lldb, non c'è bisogno di aggiungere qualsiasi categoria o colmando intestazioni o qualcosa del genere. Quando il debug di codice Objective-C, si potrebbe generalmente utilizzare il seguente comando al prompt (lldb)
:
po [[UIWindow keyWindow] recursiveDescription]
Se, però, hai messo in pausa in una cornice Swift, lldb potrebbe aspettare un'espressione Swift.È possibile, però, dica esplicitamente expr
(l'abbreviazione po
è effettivamente chiamando expression
), che la lingua l'espressione è in:
expr -l objc++ -O -- [[UIWindow keyWindow] recursiveDescription]
Gli stessi modelli si verificano in iOS 8, quando si visualizza la gerarchia View Controller, utilizzando :
po [UIViewController _printHierarchy]
o, nel telaio Swift:
expr -l objc++ -O -- [UIViewController _printHierarchy]
Vale la pena notare che Xcode 8 ha introdotto il debugger della vista (fare clic su
), offrendo un modo più interattivo per analizzare la gerarchia della vista, eliminando in gran parte la necessità della LLDB recursiveDescription
della gerarchia della vista. Per ulteriori informazioni, vedere il video WWDC 2016 Visual Debugging with Xcode. Certo, a volte finiamo per dover ricorrere alla tecnica recursiveDescription
mostrata sopra, ma il più delle volte il debugger vista rende questo processo molto più naturale e intuitivo.
E in Xcode 9, hanno ampliato questo debugger vista in modo che ora include i controller di vista rilevanti, anche:

FYI, Se si desidera utilizzare [self.view recursiveDescription] durante il debug di Swift o Obj-C, è possibile mettere in pausa l'app e po [self.view recursiveDescription]. [[UIWindow keyWindow] _autolayoutTrace] è ottimo per eseguire il debug dei vincoli di visualizzazione, specialmente in combinazione con il debugger visivo di XCode6. –