Обнаружение соединения AFNetworking и возврат переменной - PullRequest
0 голосов
/ 05 июля 2018

Я использую AFNetworking для обнаружения сетевого подключения для мобильного приложения iOS.

Я могу обнаружить соединение, но хочу вернуть переменную, чтобы использовать эту переменную для выполнения других действий. Я использую setReachabilityStatusChange, но это пустая функция. Есть ли способы я могу вернуть переменную? Вот мой код:

    class func CheckRechability() -> String {
    var networkStatus : String = ""

    AFNetworkReachabilityManager.shared().setReachabilityStatusChange {  (status: AFNetworkReachabilityStatus) in
        debugPrint(status.rawValue)

        switch (status.rawValue){
        case 0,-1:
            networkStatus = "notConnect"
            print("No rechability")
            break

        case 1,2:
            networkStatus = "connect"
            print("I have rechability")
            break

        default:
            break
        }
    }

    AFNetworkReachabilityManager.shared().startMonitoring()
    return (networkStatus)
}

Ничто не возвращает вышеуказанный код. Или есть ли способ получить обратный вызов через AFNetworking, когда он подключен к сети.

Большое спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

setReachabilityStatusChange является асинхронным блоком, и он будет срабатывать при каждом изменении состояния сети. В вашем текущем коде вы всегда получите пустую строку. Если вы хотите получить текущий статус общего менеджера, я предлагаю инициализировать его из AppDelegate и просто использовать свойство isReachable AFNetworkReachabilityManager.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    AFNetworkReachabilityManager.shared().startMonitoring()
}

...

func checkNetworkStatus() -> String  {
    var networkStatus : String = ""

    if AFNetworkReachabilityManager.shared().isReachable {
      networkStatus = "connect"
    }
    else {
      networkStatus = "notConnect"
    }

    return networkStatus
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...