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?
It seems that the whole NSURLConnection
API has been deprecated in iOS 9. Existing apps will continue to work, but new builds (linked against iOS SDK) must use the newer NSURLSession
API.
Ray Wenderlich has a good tutorial here.
Also, of course, check the official documentation.
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];
If you don't care about the completionHandler : here's an one liner.
[[[NSURLSession sharedSession] dataTaskWithRequest:request] resume];
Use STHTTPRequest which uses NSURLConnection/NSURLSession.
For NSURLSession use STHTTPRequest2.
STHTTPRequest is best library as it has only 2 files and easy to use.