NSURLConnection initWithRequest is deprecated

Aditya Borde picture Aditya Borde · Sep 18, 2015 · Viewed 23.5k times · Source

I am adopting the Gmail API in iOS and I am getting the warning:

initWithRequest is deprecated

in the following line:

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

The line is in the source file GTMHTTPFetcher.m of the API library.

What is the substitute for the deprecated -initWithRequest: method?

Answer

Raphael picture Raphael · Sep 24, 2015

NSURLConnection is deprecated in iOS 9. You can use NSURLSession instead which exists since 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];