Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSURLConnection sendAsynchronousRequest完成块是否在主线程上执行?_Ios_Objective C_Uikit_Nsurlconnection_Objective C Blocks - Fatal编程技术网

Ios NSURLConnection sendAsynchronousRequest完成块是否在主线程上执行?

Ios NSURLConnection sendAsynchronousRequest完成块是否在主线程上执行?,ios,objective-c,uikit,nsurlconnection,objective-c-blocks,Ios,Objective C,Uikit,Nsurlconnection,Objective C Blocks,我想知道当我使用NSURLConnection sendsynchronousrequest时,是否在主线程上调用了completionHandler块。我主要关心的是我是否需要自己在主线程上调度UIKit调用 NSURLConnection的文档没有提到这个细节,除非我遗漏了它 我分析了我的代码,没有内存泄漏,这表明块是在主线程上执行的 有没有明确答复的文件 [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQ

我想知道当我使用
NSURLConnection sendsynchronousrequest
时,是否在主线程上调用了
completionHandler
块。我主要关心的是我是否需要自己在主线程上调度
UIKit
调用

NSURLConnection
的文档没有提到这个细节,除非我遗漏了它

我分析了我的代码,没有内存泄漏,这表明块是在主线程上执行的

有没有明确答复的文件

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    [self.progress stopAnimating];
    if (data != nil) {
        ...
    } else {
        [self showMessageIgnoreAcknowledgement:@"Error" message:@"blah"];
    }
}];

从NSURLConnection sendAsynchronousRequest:queue:completionHandler:方法的文档中:

加载URL请求的数据,并在请求完成或失败时在操作队列上执行处理程序块

另请参见关于
队列
参数的注释:

请求完成或失败时处理程序块被调度到的操作队列

由于您要传入主队列,完成处理程序将位于主线程上(主队列位于主线程上)