可达性 - 奇怪的问题

4

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

这行代码在设备上能正常工作,但是在模拟器上会出现崩溃:

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[Reachability reachabilityWithHostName:]: unrecognized selector sent to class

有人知道原因吗?

2个回答

9

我有一个几乎相同的问题,只是在通过pod添加Reachability后,链接器没有将其链接。

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

在这一行代码中,编译器报错:“没有已知的类方法可以选择reachabilityWithHostName:”。我尝试重新添加reachability,尝试清理项目,但都没有帮助。然后我尝试重写这一行代码,结果它被编译了!
internetReachable = [Reachability reachabilityWithHostname:@"www.google.com"];

现在我明白为什么它能够工作了。因为我的旧代码来自另一个使用不同版本的Reachability的项目,选择器是'HostName',但新的版本是'Hostname'。

在重写之前,我检查了Reachability是否有这个方法,看起来它确实有,所以我无法理解问题所在。结果发现我没有注意到这个小小的字母变化!


3

问题已解决,我正在升级Reachability,我在网上搜索发现有人之前遇到过这个问题,只需删除systemconfiguration框架并重新添加,清理项目,然后再次构建,即可在模拟器和设备上完美运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接