gpt4 book ai didi

ios - AFNetworking 可达性 iOS

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:51 24 4
gpt4 key购买 nike

我对 AFNetorking 的 Reachability 有点迷茫,没有找到很多有用的信息。

我有一个可以登录 Web API 的应用程序。每个 VC 都以某种方式连接到 API,因此每个 VC 都需要具有网络访问权限。我使用 AFHTTPSessionManager 的子类来发出网络请求。

我对将代码放在哪里感到困惑 - 它只是 appDelegate 还是在每个 VC 中?

这段代码有什么用?

[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
}];

你在哪里使用这些方法,它们与上面的代码有什么关系?

-startMonitoring
-stopMonitoring

最佳答案

AFNetworking 的-startMonitoring 方法用于让您的AFNetworkReachabilityManager 开始监控网络连接。如果您不调用 -startMonitoring,您的 setReachabilityStatusChangeBlock永远不会被调用(无论您把它放在哪里),因为 AFNetworking 没有监控您的连接。

正如您可能假设的那样,-stopMonitoring-startMonitoring 完全相反 - 它阻止管理器检查网络连接。我通常不会在我的应用程序中使用此方法,但如果您的应用程序的某个部分不需要网络连接,请随时调用它(只需确保在需要时再次开始监控网络) .

只要网络状态发生变化,就会调用 setReachabilityStatusChangeBlock。如果/当网络发生变化时,您可以将它放在任何您想进行更改的地方。这方面的一个例子是将它放在您的应用程序委托(delegate)中,并在网络状态发生变化时发送 NSNotification ,以便观察通知的任何 View Controller 都可以做出适当的 react 。

您还可以手动检查网络是否在线(只要 -startMonitoring 被调用并且 AFNetworking 正在监控您的网络)使用如下方式:

if ([[AFNetworkReachabilityManager sharedManager] isReachable]) {
NSLog(@"Online");
}

您可以在 AFNetworking 的 official documentation on GitHub 上阅读更多内容.

关于ios - AFNetworking 可达性 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com