我有AFNetworking设置来监控网络可达性状态,这样当它变得可用时,我可以立即进行一次REST调用,但它不会失败。
但是,我发现它并没有告诉我状态的变化。我在Mac上模拟了100%的损失,在这段时间内,对REST API的调用将失败,但AFNetworking的可达性状态为availableViewWWAN
。然后当我关闭100%损失时,REST调用再次工作,但根据AFNetworking的状态没有改变。
这是我现在正在使用的代码:
import AFNetworking
class ConnectionManager {
static let sharedManager = ConnectionManager()
init() {
AFNetworkReachabilityManager.sharedManager().startMonitoring()
AFNetworkReachabilityManager.sharedManager().setReachabilityStatusChangeBlock() {
(status: AFNetworkReachabilityStatus) -> Void in
print("reachability status changed: \(status.rawValue)")
}
}
}
答案 0 :(得分:2)
这是因为100%的损失情况并不等于根本没有连接。 100%丢失意味着所有数据包都被丢弃但网络连接仍然存在,当您想要模拟超时连接时,它很有用。
为了模拟无网络情况,你应该在mac或iDevice上关闭你的wifi连接,用于模拟器或物理设备。