2013-06-10 6 views
7

Używam kod osiągalność Tony Million aw nieosiągalnym bloku staram się wstrzymać pobieranie, ale rozłącza Internetem przed pobraniem każdym razem jest wstrzymane AFNetworking powraca z awarii z komunikatem o błędzie „połączenie sieciowe zostało utracone” w ten sposób w stanie wznowić pobieranie więc co należy zrobić?Objective C - Połączenie sieciowe zostało utracone”Błąd podczas pobierania pliku za pomocą AFNetworking

to co mam zrobić w Application Delegata

__weak MTCAppDelegate *weakself = self; 
Reachability * reach = [Reachability reachabilityWithHostname:@"www.google.com"]; 


reach.reachableBlock = ^(Reachability * reachability) 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [[AFDROSingleton sharedInstance] resume]; 
     for (UIView *subview in [weakself.window subviews]) { 
      if (subview.tag == 20) { 
       [subview removeFromSuperview]; 
      } 
     } 
    }); 
}; 

reach.unreachableBlock = ^(Reachability * reachability) 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     MTCReachability *reach = [[MTCReachability alloc] initWithFrame:weakself.window.frame]; 
     [reach setTag:20]; 
     [weakself.window addSubview:reach]; 
     [weakself.window bringSubviewToFront:reach]; 
     [[AFDROSingleton sharedInstance] pause]; 
    }); 
}; 

[reach startNotifier]; 
+0

, więc? Jaki jest problem? –

+0

Przeczytaj uważnie pytanie ... –

+2

Zapoznaj się z funkcją AFDownloadRequestOperation, która zapewnia wiele możliwości pobierania i wznawiania plików. Będziesz mógł wznowić pobieranie po awarii sieci za pomocą tego. https://github.com/steipete/AFDownloadRequestOperation –

Odpowiedz

1

Istnieje kod osiągalności z próbki Apple, która została zaktualizowana do ARC.

Umieściłem go w projekcie Reachability w Xcode 4.6.3. Jeśli jesteś zainteresowany, mogę wysłać ci drogę, jeśli jej potrzebujesz.

+1

tak, proszę, prześlijcie mi; mój email to [email protected] jeśli to działa dobrze, przyjmuję tę odpowiedź. –

+0

Po prostu e-mailem. Twoje zdrowie. Skręcałem z tym. Proszę zmienić moje zmiany z powrotem. Skomentowałem linie 41+ w applicationDidFinishLaunching w AppDelegate. –

+0

Quamber, czy to zadziałało dla ciebie? –