I have a request using AFHTTPSessionManager:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"username" password:@"password"];
[manager GET:[NSString stringWithFormat:@"%@post/%ld",C_baseURL,(long)post_id] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
// this called not in main thread
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// this called in main thread
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// this called in main thread
}];
I check that the success and failure callback are in main thread.
How to make those callbacks not run in main thread like progress callback?
You can set the
operationQueueto choose how delegate methods are called and thecompletionQueueto choose how completion blocks are called.