Ios 默认情况下nsurlconnection是什么?同步还是异步?

Ios 默认情况下nsurlconnection是什么?同步还是异步?,ios,nsurlconnection,Ios,Nsurlconnection,这是同步的还是异步的???默认情况下,NSURLConnection是1???当您以这种方式实例化它时,您正在调用基于委托的异步实现 注意,如果调用initWithRequest:delegate:,则不应调用start。仅当您使用NO调用最后一个参数的initWithRequest:delegate:startImmediately:时,才会使用该参数。没有该开始参数的格式副本会立即自动为您启动连接。NSURLConnection API可以是同步的,也可以是异步的,具体取决于您在NSURLS

这是同步的还是异步的???默认情况下,NSURLConnection是1???

当您以这种方式实例化它时,您正在调用基于委托的异步实现


注意,如果调用
initWithRequest:delegate:
,则不应调用
start
。仅当您使用
NO
调用最后一个参数的
initWithRequest:delegate:startImmediately:
时,才会使用该参数。没有该
开始参数的格式副本会立即自动为您启动连接。

NSURLConnection API可以是同步的,也可以是异步的,具体取决于您在NSURLSession API异步时如何使用它


在上述情况下,它是异步的。

这取决于在NSURLConnection中调用的方法。但大多数方法都是异步的。除了sendSynchronousRequest:returningResponse:error:

同步加载数据

NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://google.com"]];
NSURLConnection * connect = [[NSURLConnection alloc] initWithRequest:req delegate:self];
[connect start];
+ sendSynchronousRequest:returningResponse:error:
异步加载数据

NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://google.com"]];
NSURLConnection * connect = [[NSURLConnection alloc] initWithRequest:req delegate:self];
[connect start];
+ sendSynchronousRequest:returningResponse:error:

如何在主线程上启动nsurlconnection??我该如何在后台执行?如何在主线程上启动nsurlconnection??如何在后台执行?不建议将其加载到主线程上,它将阻止UI-这可以通过+sendSynchronousRequest:returningResponse:error:实现。除非绝对必要,否则请使用Sivajee在其回答中使用的异步方法。如何在主线程上启动nsurlconnection??如何在后台执行?如果在主线程上启动
NSURLConnection
,请确保异步执行(例如使用
initWithRequest:delegate:
)。只要异步执行,就不需要自己在后台线程上运行它。但若您在后台线程上,并且必须启动连接,那个么您将使用
initWithRequest:delegate:startimemediately:
NO
作为最终参数,然后在主运行循环上手动调度它,然后手动
start
启动它。但只有在后台线程上启动时才需要这样做,这是不典型的。