Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > iOS > Адекватный контроль сетевого соединения |
Автор: Selestin 1.4.2013, 00:54 |
Добрый день! Подскажите, каким образом более правильно реализовать контроль сетевого соединения? Приложение обменивается JSON пакетами с сервером, необходимо контролировать момент, когда сеть пропала. Было решено внедрить таймер, который отсылал бы keepalive пакеты до сервера, и если накапливалось определенное количество пропавших пакетов, сигнализировал бы об этом клиенту, отсылая на первый экран. Суть вопроса вот в чем: Этот таймер необходимо инициализировать в каждом view или же повесить при старте приложения, и уже оттуда обращаться к view, чтобы перекинуть юзера на первый экран? Спасибо! |
Автор: Bitter 1.4.2013, 01:17 |
Selestin, с таймером затея явно глупая. Для контроля соединения вам нужен класс Reachability. Его нет в SDK, но он есть в документации Apple вот тут (там же можно скачать пример с самим классом): http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html Чтобы подключить его к проекту - надо скопировать файлы .m и .h в проект и добавить SystemConfiguration framework |
Автор: Selestin 1.4.2013, 01:27 |
Как он работает мне понятно, спасибо. Но мне необходимо давать "таймаут", для возможного восстановления соединения. Тоесть мне нужно будет засекать, через этот фрейморк, сколько времени сеть лежит, получается таймером уже, и по истечении времени выводить на главный экран? |
Автор: Bitter 1.4.2013, 10:15 | ||
Написал сначала что таймаут не нужен, но топом подумал и решил, что все таки да, если в течение таймаута у вас есть возможность восстановления сети, то вы просто по получении сигнала об обрыве связи можете вызвать метод повторной проверки состояния через указанное время. И если и при повторной проверке соединение не появилось, то тогда делайте переход. Что-то типа того
|