NSURLConnection 的使用

本文介绍了在iOS开发中使用NSURLConnection时需要注意的并发请求限制与线程管理技巧,包括如何避免请求超时、如何调整请求在不同线程中的执行方式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.不能同时发起过多的请求,因为发起过多的话会导致请求超时,现在工程中同时工作的请求5个。

2.默认情况下在哪个线程发起的NSURLConnection,代理的回掉就会在哪个线程被回掉。

   如果是直接调用NSURLConnection的initWithRequest:delegate:startImmediately:(第三个参数用YES,这个是designated initializer)或者方法initWithRequest:delegate:时,NSURLConnection会默认运行在NSDefaultRunLoopMode模式下,即使再使用scheduleInRunLoop:forMode:设置运行模式也没有用。

3.可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行。

- (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode; //将加入指定的run loop中运行,必须保证这时NSURLConnection不能启动,否则不起作用了

- (void)unscheduleFromRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode; //将取消在指定run loop中的运行,实际上就会停止NSURLConnection的运行


NSOperationQueue *queue = [[NSOperationQueueallocinit];

NSURLConnection *conn = [[NSURLConnection allocinitWithRequest:request delegate:self startImmediately:NO]; 

[conn setDelegateQueue:queue];




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值