Я хочу проверить, подключено ли устройство пользователя к Интернету или нет, прежде чем отправлять запрос на сервер. Для этого я делаю это в AppDelegate
классеЛучший способ проверить подключение через AFNetworking 2 в iOS?
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
[self connectivity];
}
-(void)connectivity
{
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status){
}];
// Set the reachabilityManager to actively wait for these events
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
}
и когда я сделать любой запрос я сделать
AFNetworkReachabilityStatus status = [AFNetworkReachabilityManager sharedManager].networkReachabilityStatus;
BOOL con = (status == AFNetworkReachabilityStatusReachableViaWiFi || status == AFNetworkReachabilityStatusReachableViaWWAN);
//BOOL con =[AFNetworkReachabilityManager sharedManager].reachable;//give same result as networkReachabilityStatus
Но в первый раз, когда я сделать запрос это дает мне NO
и через некоторое время она дает правильный стоимость. Пожалуйста, предложите лучший способ мониторинга подключения.
Если я вызываю свой метод 'connectivity' из' applicationDidBecomeActive', как в вопросе, а затем, если я проверю 'networkReachabilityStatus', как ваше предложение, я получаю такой же результат, как' [AFNetworkReachabilityManager sharedManager] .reachable; 'и если не называть' метод connectivity', тогда я всегда получаю 'AFNetworkReachabilityStatusUnknown'. – Blios
Перед проверкой _networkReachabilityStatus_ вы должны вызывать - (void) startMonitoring и ждать, пока он вызывает ваш обратный вызов. До того, как он называется вашим статусом обратного вызова, это AFNetworkReachabilityStatusUnknown. Если вы вызываете _networkReachabilityStatus_ из _ applicationDidBecomeActive_, вы всегда будете получать Неизвестно. Повторяю: «Проверка доступности - асинхронная операция» –