可达性 - 奇怪的问题

时间:2011-12-26 09:42:48

标签: iphone objective-c xcode reachability

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

这条线在设备上工作正常,但在模拟器上我崩溃了:

  

* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'+ [Reachability reachabilityWithHostName:]:无法识别的选择器发送到类

有谁知道为什么?

2 个答案:

答案 0 :(得分:9)

我遇到了几乎相同的问题,除了链接器在我通过pod添加后没有链接Reachability。

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

在这一行中,编译器给出错误'没有已知的选择器reachabilityWithHostName的类方法:'。

我尝试读取可达性,尝试清理项目,没有任何帮助。然后我只是尝试重写这一行并编译!

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

现在我明白为什么它有用了。因为我的旧代码来自另一个项目,其他版本的Reachability和选择器是'HostName',但新的代码是'Hostname'。

在重写之前我正在检查Reachability是否有这种方法,而且在我看来它有,我无法理解这个问题。事实证明,我没有注意到一封信中的这个小变化!

答案 1 :(得分:3)

解决了,我正在升级Reachability,我搜索了网络,我发现有人曾经有过这个,只是删除了系统配置框架并重新添加它,清理项目然后重新构建它将完全适用于模拟器和设备