Потратьте некоторое время на изучение того, как использовать отладчик Xcode, особенно с консоли (Command-Shift-R). Я также рекомендую запускать консоль каждый раз, когда вы запускаете свою программу из XCode через Настройки (cmd -,) -> Отладка-> При запуске-> Показать консоль.
Вы можете установить точку останова, которая срабатывает каждый раз, когда возникает исключение, открыв окно точки останова (cmd-option-B) и дважды щелкнув «Двойной щелчок по символу» и введя objc_exception_throw
.
Каждый раз, когда вы останавливаетесь в отладчике, вы можете напечатать описание для любого объекта в области, введя po objectname
или любой примитив через p (type)primitivename
в приглашении (gdb) в консоли. Например, po self
каждый раз, когда вы останавливаетесь внутри метода, печатает описание объекта, содержащего метод, тогда как p self
печатает тип и адрес указателя для него.
Вы можете даже вызывать методы для любого объекта в области видимости, например, если есть объект myobject
, у которого есть метод с подписью - (int) myMethod, вы можете вызвать его с помощью p (int)[myObject myMethod]
. Отлично подходит для динамической отладки проблемы.