Проверка подключения к Интернету между процессами в iphone

У меня есть следующий код

NSURL *url = [NSURL URLWithString:@"http://wallpaperswide.com/download/flattened_grass-wallpaper-2800x1050.jpg"]; //Line1 NSData *data = [[NSData alloc] initWithContentsOfURL:url]; //Line2 UIImage *tmpImage = [[UIImage alloc] initWithData:data]; //Line3 NSLog(@"%@",tmpImage); //Line4 

В строке2 это займет некоторое время, чтобы загрузить изображение в этом URL … между мной нужно проверить подключение к Интернету. Как это возможно?

я подробно объясню свою проблему ….

upto line1 подключение к Интернету для моего iphone. теперь строка2 выполняется … пока процесс загрузки продолжается, в середине этого процесса я потерял подключение к Интернету.

Теперь, как я могу уведомить пользователя как «У вас нет подключения к интернету» …

так как я могу проверить подключение к Интернету между этим процессом.?

есть ли какие-нибудь методы делегата … пожалуйста, помогите мне

Заранее спасибо…..

Вы можете сделать что-то подобное

 Reachability *reach = [Reachability reachabilityForInternetConnection]; NetworkStatus netStatus = [reach currentReachabilityStatus]; if (netStatus == NotReachable) { UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"Could not connect to the server, please check your internet connection !" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; } else { } } 

Обычно я использую NSURLConnectionDelegate . Если есть ошибка в соединении, я буду использовать Reachability , чтобы увидеть, есть ли проблема с Интернетом, или если это была ошибка сервера.

NSURLConnection NSURLConnectionDelegate NSURLRequest * theRequest = [Запрос NSURLRequestWithURL:
[NSURL URLWithString: @ " http://www.sina.com.cn/ "]
cachePolicy: NSURLRequestUseProtocolCachePolicy
timeoutInterval: 60.0];
NSURLConnection * theConncetion = [[NSURLConnection alloc]
initWithRequest: theRequest delegate: self];
если (theConnection)
{

receivedData = [[NSMutableData data] сохранить];
}

  • (void): (NSURLConnection *) connection сделалFailWithError: (NSError *) error

Вот возможные способы …

1) Использование методов делегатов NSURLConnection.

2) Использование классов повторяемости

Вы можете использовать класс Reachability, модифицированный Tony Million, который вы можете найти в Reachability

Вы можете использовать это, чтобы определить блоки, которые вызывают при изменении достижимости. Поэтому вы можете использовать его для отображения UIAlertView.

Если вы хотите загрузить изображение асинхронно, я бы рекомендовал использовать AFNetworking . Он уже предоставляет возможность добавления ReachabilityStatusBlock в используемый AFHttpClient.

Таким образом, вы можете переписать свой код, если импортируете AFNetworking.h в:

 AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://wallpaperswide.com"]]; [client registerHTTPOperationClass:[AFImageRequestOperation class]]; [client setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { if(status == AFNetworkReachabilityStatusNotReachable){ NSLog(@"Not reachable"); } }]; AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:[client requestWithMethod:@"GET" path:@"/download/flattened_grass-wallpaper-2800x1050.jpg" parameters:nil] success:^(UIImage *image) { NSLog(@"%@", image); }]; [operation start]; 

Наконец, я нашел ответ на свой вопрос … я вставляю здесь для будущей ссылки

Объявить глобальную переменную

 NSMutableData *receivedData; 

В ViewDidLoad:

 receivedData=[[NSMutableData alloc]init]; NSURLRequest *theRequest =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://wallpaperswide.com/download/flattened_grass-wallpaper-2800x1050.jpg"]]; NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; if (theConnection) { } else { // Inform the user that the connection failed. UIAlertView *connectFailMessage = [[UIAlertView alloc] initWithTitle:@"NSURLConnection " message:@"Failed in viewDidLoad" delegate: self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; [connectFailMessage show]; } 

Методы делегатов NSURLConnection.

 #pragma mark NSURLConnection methods - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [receivedData setLength:0]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [receivedData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { // inform the user UIAlertView *didFailWithErrorMessage = [[UIAlertView alloc] initWithTitle: @"NSURLConnection " message: @"didFailWithError" delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil]; [didFailWithErrorMessage show]; //inform the user NSLog(@"Connection failed! Error - %@ %@", [error localizedDescription], [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { UIImage *tmpImage = [[UIImage alloc] initWithData:receivedData]; myImageView.image=tmpImage; NSLog(@"%@",tmpImage); } 
  • Несколько элементов UIBarButton
  • Запустить экран Размер изображения для всех размеров экрана iOS
  • Требуется ли привязка модели базовой модели данных при изменении типа атрибута от Int16 до Int64
  • Как я просматриваю plist с помощью UITableViews?
  • Как отправить изображения на Parse без использования запроса?
  • Swift: imageWithData недоступно
  • Xcode - модуль тестирует сетевой вызов
  • iOS 7 3.5 "против 4" смещение содержимого с экрана
  • 2 разных раскадровки для портрета и пейзажа
  • Обновите приложение iOS из нового проекта
  • IOS: добавление объекта в определенную позицию NSMutableArray
  • Interesting Posts

    UIPickerView с условиями

    Автоматическое обновление IOS-устройств в профиле подготовки команды с помощью Xcode

    Помещение массива в ярлык быстрым

    addChild через 2 секунды

    UIBezierPath не появляется

    Краткосрочные профили обеспечения?

    Хотите отобразить значения массива в таблице

    Как использовать действительный SSL-сертификат для подключения https с использованием AFNetworking в iOS?

    NSMutableArray, проверяя, какое значение является наиболее распространенным?

    Открыть URL-адрес и остаться в приложении.

    Как динамически изменять размер текста в UITextView на iPhone 4S Swift

    Внедрение шифрования RC4 и кодирования URL в объекте c

    Отменить repeatActionForever в Swift?

    Могут ли Cocoapods поддерживать использование общей инфраструктуры как в приложении iOS, так и в iOS-расширении, где в общей структуре используются API, которые не являются безопасными для расширения?

    Как создать UIAlertView с изображением

    Давайте будем гением компьютера.