如何在应用程序中使用Alamofire的网络可操作性管理器?



我有一个用 Swift 实现的 iOS 应用程序。我正在使用Alamofire,因此我有一个名为"NetworkRechabilityManager.swift"的文件。我已经浏览了许多在线教程并使其正常工作。

我的应用中有一个页面,其数据是从 API 获取的。在"主页视图控制器"文件中检查响应的状态代码时,我计划为"响应== nil"应用网络可达性。

if response == nil {
let request = NSMutableURLRequest(url: ("www.xyz.com/api/v1/home_page")!)
let tempRequest1 = Requests(request: request,requestID: home_page_key)
HelperClass.requestDict.updateValue(tempRequest1!, forKey: home_page_key)
HelperClass.listner()
HelperClass.manager?.startListening()
}

在我的助手类中,我有:

static var requestDict: [String: Requests] = [String: Requests]()
{
didSet
{
if(requestDict.count <= 0 && shouldStopListening()) 
{
HelperClass.manager?.stopListening()
}
else
{
HelperClass.manager?.startListening()
}
HelperClass.saveRequests()
}
}
static func listner()
{
if(shouldStopListening())
{
return
}
HelperClass.manager?.listener = { status in
if(HelperClass.manager?.isReachable ?? false)
{
if(shouldStopListening())
{
return
}
execRequests()
}
}
}

在"主页视图控制器"文件中,响应是200,

if response == 200 { // performing required actions and 
HelperClass.requestDict.removeValue(forKey: home_page_key)
}

它似乎不起作用,任何人都可以举一个实施 Alamofire 的例子并解释一下。

你可以这样使用它

import Foundation
import Alamofire
class ConnectivityManager {
class var isConnectedToInternet:Bool {
return NetworkReachabilityManager()!.isReachable
}
}

并像那样使用它

if !ConnectivityManager.isConnectedToInternet {
print("not connected")
return
}
// continue your task

您可以使用"可达性"第三方类,该类在互联网更改和互联网波动期间提供回调。

这里: https://github.com/ashleymills/Reachability.swift

最新更新