Are AFNetworking success/failure blocks invoked on the main thread?

后端 未结 4 867
南方客
南方客 2020-12-04 23:44

Does AFNetworking call the completion block on the main thread? or is it called in the background, requiring me to manually dispatch my UI updates to the main thread?

<
4条回答
  •  时光说笑
    2020-12-05 00:21

    They are invoked on the main queue, unless you explictly sets the queue on AFHTTPRequestOperation, as shown in setCompletionBlockWithSuccess:failure from AFHTTPRequestOperation.m

    self.completionBlock = ^{
        if (self.error) {
            if (failure) {
                dispatch_async(self.failureCallbackQueue ?: dispatch_get_main_queue(), ^{
                    failure(self, self.error);
                });
            }
        } else {
            if (success) {
                dispatch_async(self.successCallbackQueue ?: dispatch_get_main_queue(), ^{
                    success(self, self.responseData);
                });
            }
        }
    };
    

提交回复
热议问题