我在Swift中实现了一个iOS应用程序。我正在使用Alamofire,因此我有一个名为'NetworkRechabilityManager.swift'的文件。我已经完成了很多在线教程并且正在使用它。
我的应用中有一个页面,其数据是从API获取的。在'HomePageViewController'文件中检查响应的状态代码时,我计划为'response == 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()
}
在我的HelperClass中我有:
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()
}
}
}
在'HomePageViewController'文件中,响应为200,
if response == 200 { // performing required actions and
HelperClass.requestDict.removeValue(forKey: home_page_key)
}
似乎不起作用,任何人都可以举例说明实施Alamofire的解释。
答案 0 :(得分:0)
你可以像那样使用它
import Foundation
import Alamofire
class ConnectivityManager {
class var isConnectedToInternet:Bool {
return NetworkReachabilityManager()!.isReachable
}
}
并像那样使用
if !ConnectivityManager.isConnectedToInternet {
print("not connected")
return
}
// continue your task
答案 1 :(得分:0)
您可以使用“可达性”第三方课程,该课程在互联网更改和互联网波动期间提供回调。