Достижимость - странная проблема

Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];

Эта строка отлично работает на устройстве, но на симуляторе я получаю сбой:

* Завершение работы приложения из-за неперехваченного исключения 'NSInvalidArgumentException', причина: '+ [Reachability reachabilityWithHostName:]: нераспознанный селектор отправлен в класс

Кто-нибудь знает почему?


person user784625    schedule 26.12.2011    source источник


Ответы (2)


У меня была почти такая же проблема, за исключением того, что компоновщик не связал Reachability после того, как я добавил его через pod.

internetReachable = [Reachability reachabilityWithHostName:@"www.google.com"];

В этой строке компилятор выдавал ошибку «Нет известного метода класса для селектора reachabilityWithHostName:».

Пытался прочитать достижимость, очистить проект, ничего не помогло. Тогда я просто попытался переписать эту строку, и она скомпилировалась!

internetReachable = [Reachability reachabilityWithHostname:@"www.google.com"];

И теперь я понимаю, почему это сработало. Поскольку мой старый код был взят из другого проекта с другой версией Reachability, а селектор был с HostName, а новый - с Hostname.

Перед переписыванием я проверял, есть ли у Reachability этот метод, и мне казалось, что он есть, и я не мог понять проблему. Оказалось, что я этого небольшого изменения в одной букве не заметил!

person Denis Kutlubaev    schedule 07.08.2013

решено, я обновлял Reachability, я поискал в Интернете и обнаружил, что где-то у кого-то было это раньше, и просто удалите структуру конфигурации системы и снова добавьте ее, очистите проект, а затем снова создайте, и он будет отлично работать как на симуляторе, так и на устройстве

person user784625    schedule 26.12.2011