2015-09-18 25 views
8

jestem przyjmując API Gmail w iOS i otrzymuję ostrzeżenie:NSURLConnection initWithRequest jest przestarzała

initWithRequest jest nieaktualna

w następującej linii:

connection_ = [[connectionClass alloc] initWithRequest:request_ delegate:self startImmediately:NO]; 

Wiersz znajduje się w pliku źródłowym GTMHTTPFetcher.m biblioteki API.

Co jest substytutem wycofanej metody -initWithRequest:?

+0

Czy błąd nie wspomina o wymianie? Co mówią oficjalne dokumenty (odwołanie do klasy) dla "NSURLConnection"? –

+0

Błąd jest następujący: google-api-objective-client/Source/HTTPFetcher/GTMHTTPFetcher.m: 459: 46: 'initWithRequest: delegate: startImmediately:' jest nieaktualny: po raz pierwszy przestarzały w iOS 9.0 - Użyj NSURLSession (zobacz NSURLSession. h) i oficjalni doktorzy nie wspomnieli nic o tym, co używać zamiast initWithRequest @NicolasMiari –

+0

Widzę ... (nieco) Złe wieści. zobacz moją odpowiedź. –

Odpowiedz

4

Wygląda na to, że cały interfejs API NSURLConnection został wycofany w systemie iOS 9. Istniejące aplikacje będą nadal działać, ale nowe kompilacje (połączone z pakietem SDK iOS) muszą korzystać z nowszego interfejsu API NSURLSession.

Ray Wenderlich ma dobry samouczek: here. Oczywiście sprawdź także official documentation.

0

Użyj STHTTPRequest, który używa NSURLConnection/NSURLSession.

Dla NSURLSession użyć STHTTPRequest2.

STHTTPRequest to najlepsza biblioteka, ponieważ ma tylko 2 pliki i jest łatwa w użyciu.

25

NSURLConnection jest przestarzałe w iOS 9. Można używać NSURLSession zamiast która istnieje od iOS 7.

NSURLSession *session = [NSURLSession sharedSession]; 
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request 
     completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
     { 
      // do something with the data 
     }]; 
[dataTask resume]; 
6

Jeśli nie dbają o completionHandler: oto jeden liner.

[[[NSURLSession sharedSession] dataTaskWithRequest:request] resume]; 
Powiązane problemy