Slide 12
Slide 12 text
// In even a simple network call this can get out of hand...
- (void)downloadTracksFromURL:(NSURL *)url completionHandler:(void (^)(NSArray *tracks, NSError *error))completion
{
NSURLSessionDataTask *dataTask = [self.session dataTaskWithURL:url
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (!error) {
NSError *trackError;
NSArray *tracks = [self tracksFromData:data error:&trackError];
if (tracks) {
if (completionHandler) {
completionHandler(tracks, nil);
}
} else {
if (completionHandler) {
completionHandler(nil, trackError);
}
}
} else {
if (completionHandler) {
completionHandler(nil, error);
}
}
}];
[dataTask resume];
}