NSURLSession delegate vs. completionHandler
Habe ich immer verwendet completion Handler. Mit NSURLConnection
und jetzt mit NSURLSession
. Es führte zu meinem code wirklich unordentlich, vor allem, ich habe die Anfrage in Anfrage in Anfrage.
Wollte ich versuchen, mit den Delegierten in NSURLSession
zu implementieren, etwas, was ich getan habe, untidily mit NSURLConnection
.
So habe ich eine NSURLSession
und erstellt eine dataTask
:
NSURLSessionDataTask *dataTask = [overallSession dataTaskWithURL:url
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(error == nil)
{
NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog(@"Data = %@",text);
}
}];
[dataTask resume];
Momentan habe ich ein completionHandler
für die Antwort, wie würde ich wechseln, um die Delegierten zu verwalten, die Reaktion und die Daten? Und kann ich hinzufügen, eine andere dataTask
von den Delegierten dieses? Mithilfe der cookies, die diese dataTask
erstellt und in der Sitzung?
InformationsquelleAutor der Frage AndrewSB | 2014-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, fügen Sie einen benutzerdefinierten delegate-Klasse, die Sie implementieren müssen, um die
NSURLSessionDataDelegate
undNSURLSessionTaskDelegate
Protokolle auf das minimum.Mit den Methoden:
NSURLSessionDataDelegate - ständige status Ihrer Anfrage
NSURLSessionDataDelegate
NSURLSessionTaskDelegate
Wenn Sie möchten, trennen Sie die Delegaten-code (mittlere Schicht), die aus Ihrer Berufung Klasse (in der Regel die gute Praxis der eigenen Klasse/Schicht für Netzwerk-Aufrufe), den Delegierten NSURLSession werden :-
Ref-Links:
InformationsquelleAutor der Antwort Vacca