Обработка ошибок Mac OSX / iPhone в делегате приложения? - PullRequest
5 голосов
/ 18 марта 2009

Мне любопытно, как большинство из вас, ребята, обрабатывают такие ошибки, как HTTP Forbidden или запросы типа 5xx с сервера? Или сказать, что исключение выдается в одном из ваших UIViewControllers? Вы обычно выдает ошибку делегату приложения и обрабатываете типичные ошибки на уровне окна в этот момент? Вы связываете ошибки непосредственно в UIViewController? Что делать, если у вас есть несколько UIViewController'ов, которые все общаются с обычной оболочкой NSURLConnection, и соединение не удается для некоторой ошибки HTTP 4xx или HTTP 5xx. Как правило, вы будете сообщать об ошибке приложению делегата, чтобы он мог представить UIAlertView из этой части приложения?

Просто интересно, какое решение вы используете для своих методов обработки ошибок Mac OSX / iPhone.

Спасибо большое.

Ответы [ 2 ]

2 голосов
/ 19 марта 2009

Контроллеры могут знать, а могут и не знать, что произошла ошибка, чтобы должным образом восстановиться после сетевой ошибки, но для разработки iPhone я нашел полезным иметь базовый класс связи, который понимает всю входящую связь и вне системы, и при обнаружении сбоев выдает предупреждение напрямую. Таким образом, вы можете предотвратить перегрузку уведомлений о сбоях, если пользователь переключает вкладки или иным образом перемещается по приложению, и просто создать одно сообщение, чтобы пользователь мог понять, почему экраны не обновляются.

2 голосов
/ 18 марта 2009

Ваш текущий контроллер представления должен отвечать за отправку любого сообщения об ошибке и обработку результата.

Последняя часть является ключом здесь. Если вы столкнулись с ошибкой HTTP и передали сообщение делегату приложения с параметром «повторить», ответ должен быть возвращен обратно к контроллеру. Это все становится немного противным.

Теперь вы можете захотеть создать общий класс / представление в вашем приложении, которое может обрабатывать все ошибки, с которыми вы можете столкнуться, но это все равно должно быть представлено (модальным образом) контроллером, который обнаружил ошибку и именно этот контроллер должен получать делегированные ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...