Ich fing an, NSURLSession
zu verwenden, indem ich NSURLConnection
jetzt Tage vermeide, wie es eine neue und elegante API ist, die von Apple zur Verfügung gestellt wird. Zuvor habe ich den Aufruf NSURLRequest
in den Block GCD
gestellt, um ihn im Hintergrund auszuführen. Hier ist, wie ich in Vergangenheit zu tun verwendet:Wird NSURLSession für HTTP-Daten-Task (NSURLSessionDataTask) im Hintergrund-Thread ausgeführt oder müssen wir die Warteschlange bereitstellen?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSURLRequest *request = [NSURLRequest requestWithURL:
[NSURL URLWithString:@"www.stackoverflow.com"]];
NSURLResponse *response;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
if (error) {
// handle error
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
// do something with the data
});
});
Nun, hier ist, wie ich NSURLSession
:
- (void)viewDidLoad
{
[super viewDidLoad];
/*-----------------*
NSURLSession
*-----------------*/
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:
[NSURL URLWithString:@"https://itunes.apple.com/search?term=apple&media=software"]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@", json);
}];
}
Ich will wissen, dass mein Antrag auf Hintergrund-Thread ausgeführt werden, selbst oder I muss ich meinen eigenen Mechanismus wie bei NSURLRequest
bereitstellen?
Bitte teilen Sie Ihr Wissen. Danke im Voraus !!!
soweit ich nichts läuft im Hintergrund wissen, wenn u es macht !! !! –
@ T_77 Es gibt viele Cocoa-Methoden (einschließlich dieser), die Code auf Hintergrund-Threads ausführen. – Rob
Könnten Sie mir bitte einige dieser @Rob –