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请求的数据,并在请求完成或失败时在操作队列上执行处理程序块 另请参见关于
队列
参数的注释:
请求完成或失败时处理程序块被调度到的操作队列
由于您要传入主队列,完成处理程序将位于主线程上(主队列位于主线程上)