Chr*_*rle 5 ios afnetworking swift afnetworking-3
我需要帮助理解为什么我会看到以下内容.
AFNetworking 3.0.4 在iOS9.x上
如果我抓住可达性管理器
AFNetworkReachabilityManager.sharedManager()
Run Code Online (Sandbox Code Playgroud)
然后添加一个setReachabilityStatusChangeBlock然后我得到我期望的.
NotReachableReachableViaWWANReachableViaWiFi所以 - 一般情况都是按预期工作.
但我想更准确一点 - 我们知道我们正在谈论什么IP地址,所以我想managerForAddress改用它.这是我从网上购买的代码(大多数示例都是obj-c而不是swift) - 在下面 - ip是地址的字符串(点四方形式):
let isLittleEndian = Int(OSHostByteOrder()) == OSLittleEndian
let htons = isLittleEndian ? _OSSwapInt16 : { $0 }
var address = sockaddr_in()
address.sin_len = UInt8(sizeofValue(address))
address.sin_family = sa_family_t(AF_INET)
address.sin_port = htons(443);
address.sin_addr.s_addr = inet_addr(ip);
addressReachability = withUnsafePointer(&address) {
AFNetworkReachabilityManager(forAddress: UnsafePointer($0))
}
Run Code Online (Sandbox Code Playgroud)
然后,我可以将setReachabilityStatusChangeBlock添加到此管理器并开始监视.
现在 - 我发送的IP并不重要 - 空字符串,443正在侦听的有效IP地址,443未侦听的有效IP地址,无效的IP地址 - 结果与sharedManager的结果完全匹配- 如果我在wifi上 - 那就是ReachableViaWiFi,如果我只使用4G那么它就是ReachableViaWWAN,如果我处于飞行模式的话NotReachable.
所以 - 要么我完全误解了如何managerForAddress使用,要么我有一个代码错误:)在任何一种情况下,我都喜欢听到我误解/出错的地方.
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |