Основная информация
Так как в приложении DrinkMixer произошел сбой, Xcode предоставляет основную информацию о возникшей проблеме. В нашем случае объекту было отправлено сообщение с «неопознанным селектором». Вспомните, что селектор фактически представляет собой вызов метода. Иначе говоря, какой-то код пытается вызывать методы другого объекта, и эти методы не существуют.
Но Xcode не ограничивается режимом командной строки; в этой среде имеется полноценный отладчик с графическим интерфейсом. Давайте посмотрим использование точек прерывания при отладке.
До настоящего момента мы использовали Xcode для написания кода, компилирования и запуска приложений. Но и после нажатия кнопки «Build and Debug» Xcode продолжает помогать вам. Прежде всего, вы можете расставить точки прерывания в своем коде, чтобы лучше контролировать происходящие события. Щелкните на полях рядом со строкой, в которой нужно установить точку прерывания. Точка прерывания обозначается маленькой синей стрелкой. Когда Xcode перейдет к этой строке, выполнение приложения прервется, а вы сможете проанализировать его текущее состояние с консоли.
В отладчике Xcode отображается информация о состоянии приложения
В отладчике отображается код приложения, состояние стека и окно для просмотра переменных и содержимого памяти. Если щелкнуть на кадре стека, Xcode покажет строку кода, связанную с этим кадром, и задаст значения соответствующих локальных переменных. Все, что делается в окне отладчика, можно сделать в консольном режиме, но в отладчике для этих целей используется удобный графический интерфейс.
Так как мы знаем, что проблема как-то связана с массивом, попробуйте установить точку прерывания в строке создания массива. Постройте и запустите приложение и посмотрите, что произойдет.
При пошаговом выполнении до точки заполнения массива никакие проблемы не обнаруживаются.
Что вообще происходит?
Приложение завершается аварийно, причем проблема кроется не в коде заполнения массива. Вернемся к Xcode. Среда показывает, в какой строке возникает проблема. А вы видите, что здесь не так?
Наводим глянец
Итак, наше приложение почти работает. Его история типична для любого приложения! Вы обеспечиваете работу части функциональности, позднее решаете что-нибудь добавить, выполняете рефакторинг и реагируете на обратную связь из Арр Store. Разработка приложения никогда не бывает линейным процессом, но в ходе работы вы узнаете много нового.
- Дата: 15-12-2014, 19:46