在我的iPhone应用程序中,我已经能够正确使用NSURLConnection从URL下载数据。我只需将delegate
设置为我的UIView,并确保设置了UIView以回答合适的代理功能,如-connection:didReceiveResponse:
。但是,如果我有一些NSURLConnections(对于类似的请求或多种请求),它会变得混乱,因为代理函数(如didReceiveRequest
)不区分不同的请求。异步请求的优点在于,您应该能够一次多个数据,而不会阻塞主线程。 如何同时使用多个NSURLConnection请求的最佳做法是什么?同时使用多个NSURLConnections - 最佳实践
0
A
回答
0
我更喜欢将它们包装在一个更高级别的对象中(如ImageDownloader
或SomeWebServiceCall
),该对象具有所有每个连接/调用状态信息。我通常创建一个委托这些对象,以便调用者在操作成功或失败时获得更具体的回调。
0
也许看看ASIHTTPRequest,而不是NSURLConnection。 ASIHTTPRequest使得这项工作非常简单。
0
在这种情况下,我认为NSOperation是你最好的选择。 ASIHTTPRequest基于NSOperation,并允许您将每个请求处理为一个操作,该操作充当其自己NSURLConnection的委托。
虽然你必须小心,因为默认情况下,NSOperations在单独的线程上运行,但是像这样的一些API需要在主线程上执行。如果你检查源代码到ASIHTTPRequest,你会注意到它们有一些基础结构来确保在主线程上调用委托方法。
0
为每个NSURLConnection和NSMutableData创建一个实例变量。您的所有委托方法有NSURLConnection的对象作为参数,所以你可以匹配他们为这样的:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
if (connection == aConnection) {
// Do something with the data for aConnection
} else if (connection == otherConnection) {
// Do something with the data for otherConnection
}
}
这仍然限制你每个实例变量的一个连接,所以它不适合,例如,表在每行需要加载的图像上查看图像。
相关问题
- 1. 多个RemoteObjects - 最佳实践
- 2. 最佳实践
- 3. 最佳实践
- 4. 最佳实践?
- 5. 最佳实践
- 6. 最佳实践
- 7. 多个redmine实例最佳实践
- 8. 最佳实践
- 9. 最佳实践
- 10. 最佳实践
- 11. 最佳实践
- 12. 最佳实践
- 13. 最佳实践
- 14. 最佳实践
- 15. 最佳实践
- 16. cuBLAS同步最佳实践
- 17. 最佳实践
- 18. 最佳实践
- 19. 最佳实践:
- 20. 最佳实践
- 21. 最佳实践
- 22. 最佳实践使用PDO
- 23. 最佳实践使用Q.promise
- 24. 最佳实践使用
- 25. ServiceStack.Redis使用最佳实践
- 26. 最佳实践使用svn:mergeinfo
- 27. 最佳实践
- 28. 最佳实践
- 29. 使用Terraform时的最佳实践
- 30. 最佳实践
重复http://stackoverflow.com/questions/203294/multiple-nsurlconnection-delegates-in-objective-c – 2010-11-07 05:37:05