1
です:AFHTTPSessionManager成功コールバック私は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
}];
私はsuccess
とfailure
コールバックがメインスレッドであることを確認してください。
コールバックをprogress
コールバックのようにメインスレッドで実行しないようにするにはどうすればよいですか?
ありがとう@Wain、しかし、私はグーグルでこれを行う方法をもっと手がかりにすることができます。私はグーグルではありましたが、まだ 'operationQueue'と' completionQueue'を設定する手がかりがありません – dann
'manager.completionQueue = someDispatchQueue'おそらく 'someDispatchQueue'はバックグラウンド補完ハンドラのために作成したキューです。 'operationQueue'(あなたの質問に無関係なように見える)を本当に設定したいのであれば、' manager.operationQueue = someOperationQueue'でしょう。 – Rob
ワインと@Robありがとう、私は今理解しています:) – dann