как проверить смену сети iphone - PullRequest
1 голос
/ 18 августа 2011

Я проверяю сетевое соединение, используя этот пример от Apple:

- (void) checkNetworkStatus:(NSNotification *)notice
{
    // called after network status changes
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
    switch (internetStatus)
    {
        case NotReachable:
        {
            NSLog(@"The internet is down.");
            self.internetActive = NO;

            break;

        }
        case ReachableViaWiFi:
        {
            NSLog(@"The internet is working via WIFI.");
            self.internetActive = YES;

            break;

        }
        case ReachableViaWWAN:
        {
            NSLog(@"The internet is working via WWAN.");
            self.internetActive = YES;

            break;

        }
    }

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
    switch (hostStatus)
    {
        case NotReachable:
        {
            NSLog(@"A gateway to the host server is down.");
            self.hostActive = NO;

            break;

        }
        case ReachableViaWiFi:
        {
            NSLog(@"A gateway to the host server is working via WIFI.");
            self.hostActive = YES;

            break;

        }
        case ReachableViaWWAN:
        {
            NSLog(@"A gateway to the host server is working via WWAN.");
            self.hostActive = YES;

            break;

        }
    }
}

Я собираюсь сначала проверить, есть ли соединение, а затем отправить электронное письмо. Проблема в том, что проверка подключения приложения к хосту занимает слишком много времени, скажем, www.google.com, это занимает почти минуту. Есть ли более быстрый способ проверить это?

Другой вопрос, как проверить, было ли соединение изменено с Wi-Fi на 3G.

Заранее спасибо!

1 Ответ

0 голосов
/ 18 августа 2011

Почему вы хотите определить интернет-соединение перед отправкой по электронной почте?Не будет ли лучше, если электронное письмо будет храниться в папке «Исходящие», пока не будет установлено соединение?Так обычно работают почтовые клиенты.Outlook или Gmail не мешают вам нажимать кнопку отправки, даже если вы не подключены.Во многих MFMailComposer реализациях, которые я видел, я никогда не видел, чтобы кто-нибудь проверял соединение.

Что касается второго вопроса (опять же, я не могу понять причину этого), я недумаю, что будет обратный звонок, который расскажет вам об изменении WIFI на 3G.Естественно, вам придется продолжать опрос.Продолжайте вызывать checkNetworkStatus несколько раз и посмотрите, какой случай удовлетворен.

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