ASIHTTPRequest Доступность Как

Как бы мне ни нравился ASIHTTPRequest, нигде не документировано, как использовать модифицированный класс Reachability, и я не смог найти его в stackru или в любых примерах проектов.

В настоящее время я в этой точке:

Reachability *reach = [Reachability reachabilityWithHostName:@"http://google.com"];
[reach startNotifier];

if ([reach isReachable]) {
    NSLog(@"connection");
}else{
    NSLog(@"no connection");
}

Который, кажется, не работает.

2 ответа

Решение

Вам нужно настроить обработчик уведомлений для этого:

Reachability *reach = [Reachability reachabilityWithHostName:@"http://google.com"];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(reachabilityChanged:)
                                             name:kReachabilityChangedNotification
                                           object:nil];
[reach startNotifier];

Затем реализуйте обработчик так:

- (void) reachabilityChanged:(Reachability *) reach {
    if ([reach isReachable]) {
       NSLog(@"connection");
    } else{
       NSLog(@"no connection");
    }
}

Кроме того, когда вам не нужно знать, когда что-то меняется, удалите себя в качестве наблюдателя:

[[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];

- (void) reachabilityChanged:(NSNotification *)notification
{
    Reachability *localReachability = [notification object]; 


    if ([localReachability isReachable])

    {
        NSLog(@"connection");
    } else{
        NSLog(@"no connection");
    }

}

Пожалуйста, внесите эти изменения, тогда код будет работать как шарм:)

Другие вопросы по тегам