AFNetworking NetworkObserver работает некорректно?

#ios #objective-c #iphone #afnetworking-3

#iOS #objective-c #iPhone #afnetworking-3

Вопрос:

Я использую AFNetworking NetworkObserver для непрерывной проверки подключения к Интернету. Я хочу обновить пользовательский интерфейс на основе подключения к Интернету. Для этого я добавил следующего наблюдателя в делегате приложения:

 [[AFNetworkReachabilityManager sharedManager] startMonitoring];
 

затем в каждом ViewController я добавил :

 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSLog(@"Reachability: %ld %@",(long)status, AFStringFromNetworkReachabilityStatus(status));
        int intRechable = status;
        if (intRechable == 0) {
            NSLog(@"Connection lost");
        }else{
            NSLog(@"Connected");
        }
}];
 

Проблема в том, что некоторое время он работает, а некоторое время нет.
Я проверил какой-то ответ, в котором они упоминают установленную временную задержку. Но все равно он не работает всегда.

Я заметил, что контроллер, на котором нет вызова веб-службы, на этом контроллере работает хорошо (даже на симуляторе!). Есть ли какая-либо связь между этим?

Комментарии:

1. Вы зарегистрировали устройство?

2. Да, для тестирования используется 6 plus. Ниже приведены сценарии: 1. Если я нахожусь на том же экране, если Интернет потерян, он не показывает никакого ответа, но если я перейду на другой экран, он не даст интернета. 2. Сценарий, о котором я упоминал, встречается нечасто, но это основная проблема. 3. Часть экрана работает отлично. Я просто застрял на этом. Я собираюсь реализовать другой способ для этого, я дам вам знать, если это сработает. Счастливого кодирования.

3. ОК. Спасибо..

4. Ооо, это была моя ошибка, я неправильно проверяю флаг состояния. Вместо того, чтобы помещать статус во вводимую переменную, либо измените вводимую переменную на long, либо напрямую проверьте статус, присвоив ему значение long с помощью integer , это решило мою проблему.