Приложение iPhone падает при проверке интернет-соединения - PullRequest
1 голос
/ 26 ноября 2010

В моем приложении для iPhone мне нужно определить доступность интернет-соединения.

Итак, я ссылаюсь на некоторые файлы из проекта «Достижимость» Apple.

Ссылка приведена ниже:

http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

Я создаю новый проект и внедряю приведенный ниже код в viewWillAppear, но приложение вылетает.

Я включил Reachability.h, Reachability.m из демонстрационного проекта Apple.

Я также включил SystemConfiguration Framework.

приложение работает нормально, когда интернет работает. Но приложение не работает, когда Интернет не работает.

Даже я проверял консоль, но в консоли не отображаются уведомления или ошибки.

   Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];

NetworkStatus internetStatus = [r currentReachabilityStatus];
if ((internetStatus == ReachableViaWiFi) || (internetStatus == ReachableViaWWAN))
{
    UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"Internet Connection" message:@"Available" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [myAlert show];
    [myAlert release];
    }
else
{
    UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via WiFi or cellular network to work." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [myAlert show];
    [myAlert release];
    }

В чем может быть причина сбоя?

Что мне делать?

Спасибо !!

Ответы [ 3 ]

4 голосов
/ 26 ноября 2010

Вы перевыпускаете оповещения. Сначала вы делаете autorelease, а затем дополнительно release, что слишком много. Просто удалите два [myAlert release];, и оно должно работать.

1 голос
/ 28 ноября 2010

Здесь может быть так, что ваш код не работает на симуляторе из-за истечения времени ожидания. Но попробуйте запустить его на устройстве. Также попробуйте отладить код, как правильно сказал @greg. Для этого кредита следует перейти на @greg. Надеюсь это поможет. Дайте мне знать, если это работает.

0 голосов
/ 28 ноября 2010

Ваша проблема в другом месте вашего кода, так как код, который вы предоставили вместе с копированием Reachability. [Mh] в новый проект Xcode, кажется, работает без сбоев. Когда ваше приложение падает, оно должно иметь некоторую информацию, зарегистрированную в консоли. Если на самом деле ничего нет, установите точку останова в ваших методах запуска (viewWillLoad, viewDidLoad, AppDelegate вещи и пошагово проходите, пока вы не поймете проблему.

...