У меня есть приложение для iOS, реализованное в Swift. Я использую 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 с объяснением.