Jetzt kann Ihnen helfen NSURLSession
verwenden Beispiels (GET):
-(void)placeGetRequest:(NSString *)action withHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))ourBlock {
NSString *urlString = [NSString stringWithFormat:@"%@/%@", URL_API, action];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:ourBlock] resume];
}
Jetzt müssen Sie rufen Diese Methode mit einer Aktion (oder Ihrer vollständigen URL, falls Sie dies bevorzugen) und dem Block, der ausgeführt wird, wenn der API-Aufruf zurückkehrt.
[self placeGetRequest:@"action" withHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// your code
}];
Innerhalb dieser Blöcke werden Sie ein NSData
mit den Antwortdaten und NSURLResponse
mit der HTTP-Antwort erhalten. So, jetzt können Sie Ihren Code dort setzen:
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
documentsURL = [documentsURL URLByAppendingPathComponent:@"localFile.pdf"];
[data writeToURL:documentsURL atomically:YES];
Hauptunterschied zwischen NSURLSession und NSURLConnection
NSURLConnection: Wenn wir eine offene Verbindung mit NSURLConnection haben und das System unterbrechen unsere App, wenn Unsere App geht in den Hintergrundmodus, alles, was wir erhalten oder gesendet haben, ging verloren.
NSURLSession: lösen Sie dieses Problem und geben Sie uns auch aus dem Prozess Downloads. Es verwaltet den Verbindungsprozess, auch wenn wir keinen Zugriff haben. Sie werden application:handleEventsForBackgroundURLSession:completionHandler
in Ihrem AppDelegate
So mit dem Einsatz von NSURLSession verwenden müssen, Sie brauchen nicht zu verwalten oder Ihre Internetverbindung zu überprüfen, weil OS es für Sie tut.
"Veraltet" ist kein Fehler. Es ist eine Warnung, dass in Zukunft etwas weggehen wird. Wenn Sie einen tatsächlichen Fehler haben, ist es wahrscheinlich aus einem anderen Grund. –
Sry Sie sind richtig – Maximilian