1.Я бы порекомендовал взглянуть на класс Reachability Эндрю Донохо, который является расширением образца, выпущенного Apple:
http://blog.ddg.com/?p=24
Это отвлечет от необходимости беспокоиться о работе суведомления и позволяют вам сосредоточиться на простом тестировании достижимости вашего IP или если активен определенный тип сети.
2.Что касается фактического уведомления пользователя, я бы сказал, что это зависит от вашего приложения.Например, на подавляющем большинстве экранов одного из моих приложений UIView пытается выполнить асинхронную загрузку данных из службы RESTful при загрузке этого представления.Я не делаю никаких тестов достижимости заранее, я просто пытаюсь сделать звонок, и если запрос не удается, я уведомляю пользователя после факта.Если у вас нет конкретного случая необходимости знать, что IP-адрес доступен, я думаю, что в общем случае обработка любых ошибок при попытках подключения должна быть достаточной.Я уверен, что есть много крайних случаев, хотя вы можете сначала проверить их достижимость.
С другой стороны, я использую достижимость на данном экране и рекомендую подключение по WiFi.Поскольку этот экран выполняет довольно интенсивную синхронизацию данных, я предупреждаю пользователя, если он находится в сети 3G, что синхронизация занимает немного больше времени, в то время как WiFi просто выполняет синхронизацию.