tgoop.com/mobileproglib/6235
Last Update:
Большинство iOS-разработчиков используют Xcode Debugger только для банальных breakpoint
и просмотра переменных. Но в нём есть куда больше фишек, которые реально экономят время.
🔹 Conditional breakpoints
Можно остановить выполнение не всегда, а только при выполнении условия.
Например, поставить брейкпоинт на метод и задать условие userId == 42
. Тогда дебаггер не будет дёргать вас на каждом вызове.
🔹 Exception Breakpoint
Очень полезно для поиска падений — Xcode сразу остановит выполнение в момент выброса исключения, до того как приложение упадёт. Настраивается через вкладку Breakpoints Navigator → + Exception Breakpoint.
🔹 Symbolic breakpoints
Позволяют ловить вызовы по имени метода или функции, даже если кода у вас нет (например, методы UIKit). Можно отследить момент, когда система вызывает viewDidAppear:
или layoutSubviews
.
🔹 Debug view hierarchy
Через кнопку "Debug View Hierarchy" можно визуально исследовать всю иерархию вьюх, включая невидимые и перекрытые элементы. Отличный способ поймать «невидимую кнопку», которая блокирует тап.
🔹 LLDB команды прямо в консолиpo object
— печатает объект с вызовом description
.expr
— позволяет выполнять произвольный Swift/ObjC код прямо во время остановки.watchpoint set variable foo
— можно следить за изменением конкретной переменной.
🔹 Runtime Issues
Xcode сам подсказывает баги вроде «UI update вне main thread» или «дважды добавили constraint». Не игнорируйте эти подсказки — они часто спасают кучу времени.
Что из этого вы используете?
#буст #MiddlePath #iOS