pragma mark - NSURLSessionDataDelegate
-
(void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
{
NSURLSessionResponseDisposition disposition = NSURLSessionResponseAllow;if (self.dataTaskDidReceiveResponse) {
disposition = self.dataTaskDidReceiveResponse(session, dataTask, response);
}if (completionHandler) {
completionHandler(disposition);
}
}
==============================================
[[AFAppDotNetAPIClient sharedClient] GET:@"v2/book/1220562" parameters:nil progress:nil success:^(NSURLSessionDataTask * __unused task, id JSON) {
NSArray *postsFromResponse = [JSON valueForKeyPath:@"data"];
NSMutableArray *mutablePosts = [NSMutableArray arrayWithCapacity:[postsFromResponse count]];
for (NSDictionary *attributes in postsFromResponse) {
Post *post = [[Post alloc] initWithAttributes:attributes];
[mutablePosts addObject:post];
}
if (block) {
block([NSArray arrayWithArray:mutablePosts], nil);
}
} failure:^(NSURLSessionDataTask *__unused task, NSError *error) {
if (block) {
block([NSArray array], error);
}
}];
第一個completionHandler回調(diào)塊氧秘,一半平常大家使用block回調(diào)脐瑰,block里面的參數(shù)基本都是回調(diào)給我們需要處理的內(nèi)容工禾,但是這個completionHandler回調(diào)总棵,里面沒有參數(shù)鳍寂,說明什么這個completionHandler回調(diào)塊,需要我們向他傳遞參數(shù)情龄,回調(diào)給系統(tǒng)使用