iOS 5.1 可达性
Posted
技术标签:
【中文标题】iOS 5.1 可达性【英文标题】:iOS 5.1 Reachability 【发布时间】:2012-03-14 02:20:11 【问题描述】:我正在尝试在 ios 5.1 中使用可达性,但它给了我一个 Match-o Linker 错误。 我正在使用 Xcode 4.3 并使用 armv6 和 armv7 构建我的应用程序。我读过 Reachability 与 armv7 不兼容,这可能会导致错误。真的吗? 如果是这样,是否有任何解决方法可以让我的应用程序检查互联网连接? 是的,我都进口了
Reachability.h
和
SystemConfiguration.framework
我的示例实现代码如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
hostReachable = [Reachability reachabilityWithHostName: @"www.apple.com"];
[hostReachable startNotifier];
提前感谢!
【问题讨论】:
【参考方案1】:https://github.com/tonymillion/Reachability
iOS5/GCD/ARC 友好版
【讨论】:
你甚至可以使用块来代替 NSNotificationCenter 不是原始可达性对我不起作用的问题,它没有触发网络不可达通知。这个库效果更好!谢谢 @Tony 看起来这些块在 iOS 5.1 上工作。我有一种方法可以每隔一小时检查一次与我的服务器的连接,以发送调查结果,但并非总是会执行。 UnreachableBlock 方法反应良好,但reachableBlock 并非总是如此。 嗨 Tony:为什么在检查可达性时不会发布通知?调试显示它正在到达reachabilityChanged
中的postNotificationName
代码,但在视图控制器中从未观察到通知。我尝试使用块,它显示可达,但我想了解这两种方法。【参考方案2】:
不确定你是否已经解决了这个问题。
但是,如果您阅读了 Xcode 4 中突出显示的实际错误,并且如果它说类似
“ld:重复符号 _OBJC_IVAR__Reachability.reachabilityRef in ...链接器命令失败,退出代码为 1(使用 -v 查看调用)”
也就是说,您已经在项目中的某个地方包含了 Reachability.h 和 Reachability.m,现在您已经包含了一个副本。
删除 Reachability.h 和 Reachability.m 的所有重复副本,并在项目文件中的某处仅保留 1 个副本。
【讨论】:
以上是关于iOS 5.1 可达性的主要内容,如果未能解决你的问题,请参考以下文章