Работает ли Apple Reachability с возможностью подключения 3G? - PullRequest
1 голос
/ 15 апреля 2010

Я занимаюсь разработкой приложения для iPad и пытаюсь найти наилучший способ решить, может ли пользователь подключиться к Интернету. Если у пользователя нет подключения, я буду загружать кэшированные данные, в противном случае я буду загружать новые данные. Я пытаюсь использовать для этого класс доступности Apple, и я хотел посмотреть, правильно ли я это делаю. В приложении DidFinishLaunchingWithOptions я делаю это:

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];

Reachability hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReach startNotifer];

Тогда моя достижимость изменилась: выглядит так:

- (void)reachabilityChanged:(NSNotification* )note {
    Reachability *curReach = [note object];
    self.internetConnectionStatus = [curReach currentReachabilityStatus];

    if (internetConnectionStatus == NotReachable) {
        [viewController getDataOffline];
    } else {
        if (![[NSUserDefaults standardUserDefaults] objectForKey:kFIRST_LAUNCH]) [viewController getCurrentLocation];
        else [viewController getData];
    }
}

Прямо сейчас, это отлично работает для WiFi iPad. Я просто хочу убедиться, что это будет работать для 3G iPad. Не могли бы вы сообщить мне, правильно ли я это делаю или нет?

Ответы [ 2 ]

3 голосов
/ 15 апреля 2010

Да, класс достижимости может использовать как WiFi, так и 3G, чтобы определить, доступен ли удаленный хост.

Также в качестве дополнительного примечания вы можете рассмотреть возможность всегда отображать кэшированные данные при запуске приложения, а затем асинхронно обновлять новые данные в фоновом режиме. В зависимости от контекста вашего приложения это может создать гораздо лучший пользовательский интерфейс, поскольку некоторые данные всегда доступны.

Если вы заинтересованы в получении дополнительной информации об этом, в книге «Расширенные проекты iPhone» есть фантастическая глава под названием «Фальсифицируйте, пока не сделаете»:

1 голос
/ 15 апреля 2010

Да, класс Reachability сообщит вам, можете ли вы достичь его любым сетевым методом.

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