Правильная обработка условия «нет сети» полностью зависит от вашего приложения.
Необходимо помнить две вещи: программно закрывать приложение или не обрабатывать случай «случай, когда соединение недоступно» - это обе причины отклонения в процессе проверки Apple.
Имея опыт разработки приложения, которое также сильно зависело от доступности сети, я бы сказал, что передовой опыт можно обобщить следующим образом:
1) использовать инфраструктуру Reachability , чтобы определить, какой тип подключения у вас есть; версия, на которую я ссылаюсь, должна быть более предпочтительной, чем версия от Apple, которая содержит ошибки (поищите в S.O);
2) каждый раз, когда вам нужны данные из сети, проверяйте, установлено ли соединение (т.е. не один раз в начале);
3) всегда информировать пользователя о том, что сеть недоступна, когда это происходит, либо отображая предупреждение, либо лучше показывая какой-либо другой вид значка / сообщения; наименее навязчивый вид отображения лучше, чтобы не нарушать рабочий процесс пользователя;
4) если вы кэшировали данные, и это имеет смысл, используйте кэшированные данные, когда сетевое соединение недоступно (это также сделает приложение «частично пригодным для использования» и в таких случаях);
5) предложить пользователю кнопку для обновления данных, если это имеет смысл для вашего приложения;
При этом самой простой реализацией этого «передового опыта» является приложение, которое в случае отсутствия доступного соединения возвращает пользователя на «главный экран» (уродливо, но это может быть единственной разумной вещью в вашем приложении). ). Полная реализация, скажем, rss-ридер, кеширующий все новости и позволяющий читать их, даже когда нет соединения (очевидно, без загрузки новых данных).