Все началось с просьбы
Василий хотел иметь приложение, упрощающее его работу бармена. Мы довольно быстро соорудили ему такое приложение, но столкнулись с трудностями при загрузке подробных описаний рецептов. Эти трудности каким-то образом связаны с использованием списка plist словарей.
Мы расстались с приложением DrinkMixer, когда отладка была в самом разгаре.
Приложение DrinkMixer нормально запустилось и прекрасно работало до точки прерывания строки 19. Отладчик прервал работу приложения и вызвал отладочную консоль. Установка точки прерывания в конце главы 4 позволила нам сделать вывод, что до импортирования файла сбоя не было.
Давайте последовательно проанализируем процесс загрузки списка plist и убедимся, что он работает. Для этого дважды введите команду next. Первая команда задает путь к списку plist, а вторая осуществляет фактическую загрузку данных.
Загрузка списка plist прошла нормально. Значит, ошибка произошла позже. Давайте продолжим выполнение приложения и посмотрим, где происходит сбой. Нажмите кнопку Continue (или введите Continue в консоли). Снова исключение. И где же произошел сбой?
Использование отладчика для анализа сбоя.
В DrinkMixer происходит стабильный сбой, и похоже, ошибка не связана с кодом загрузки списка list. Xcode останавливает наше приложение в точке, непосредственно предшествующей его закрытию iOS, поэтому мы при помощи отладчика можем узнать, что именно пыталось сделать приложение перед сбоем.
Вернитесь в отладчик и посмотрите на состояние стека вызовов в левой части экрана. Этот стек вызовов непосредственно привел к сбою.
В исключении говорится о словаре NScF (NSCFDictionary). Может, оно как-то связано с новыми инструкциями по приготовлению, которые мы загрузили для детализированного. Представления?
Разберитесь, что происходит в приложении, руководствуясь уже известной информацией!
Кто отправляет сообщения словарю? Почему мы получили неопознанный селектор?
- Дата: 15-12-2014, 22:28