Как отделить класс вызова API в Swift с Alamofire?IOS

Программируем под IOS
Ответить
Anonymous
 Как отделить класс вызова API в Swift с Alamofire?

Сообщение Anonymous »

Я хочу создать свой собственный класс сетевого менеджера, чтобы можно было обрабатывать ошибки глобально, например, при отсутствии Интернета, тогда я мог бы показывать всплывающие окна только из этого класса. Я использую для этого Alamofire, а также хочу проанализировать данные в формате JSON с помощью библиотеки SwiftJSON. Я попробовал использовать свой код, но не смог передать данные из моего сетевого класса туда, где вызывается функция.
import UIKit
import Alamofire
import SwiftyJSON
import SystemConfiguration

class WebServiceHelper: NSObject {

typealias SuccessHandler = (JSON) -> Void
typealias FailureHandler = (Error) -> Void

// MARK: - Internet Connectivity

class func isConnectedToNetwork() -> Bool {

var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(MemoryLayout.size)
zeroAddress.sin_family = sa_family_t(AF_INET)

guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
SCNetworkReachabilityCreateWithAddress(nil, $0)
}
}) else {
return false
}

var flags: SCNetworkReachabilityFlags = []
if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) {
return false
}

let isReachable = flags.contains(.reachable)
let needsConnection = flags.contains(.connectionRequired)

return (isReachable && !needsConnection)
}

// MARK: - Helper Methods

class func getWebServiceCall(_ strURL : String, isShowLoader : Bool, success : @escaping SuccessHandler, failure : @escaping FailureHandler) {
if isConnectedToNetwork() {

print(strURL)

if isShowLoader == true {

//AppDelegate.getDelegate().showLoader()
}

AF.request(strURL).responseJSON { (resObj) -> Void in
print(resObj.result)
}
}else {
//CommonMethods.showAlertWithError("", strMessage: Messages.NO_NETWORK, withTarget: (AppDelegate.getDelegate().window!.rootViewController)!)
}
}

}

//вызов с контроллера
func getData() {
WebServiceHelper.getWebServiceCall("http://3.16.229.165/webservice/getFollowingList", isShowLoader: false, success: { (responceObj) in

print("success => \(responceObj)")
}

, failure: { (failureObj) in
print("failureObj = \(failureObj)")
})
}

// Данные ответа API
{
"status": false,
"followers": false,
"message": "You are not yet following anyone"
}


Подробнее здесь: https://stackoverflow.com/questions/673 ... -alamofire
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»