iphone-为什么NSURLConnection ConnectionIDFinishLoading未运行?

iphone-为什么NSURLConnection ConnectionIDFinishLoading未运行?,iphone,uiscrollview,nsurlconnection,Iphone,Uiscrollview,Nsurlconnection,我的应用程序如下所示: 我有一个UIScrollView,里面有imageview。我实现了scrollViewDidScroll委托,因此如果滚动确实滚动,我将创建一个NSURLConnection并从某个url下载数据,仅此一次 问题是NSURLConnection ConnectionIDFinishLoading只能在我在滚动视图上松开手指后调用或运行 更清楚地说,如果我用手指滚动scrollview,我确认已创建NSURLConnection,但只要我不释放scrollview,就永远

我的应用程序如下所示:

我有一个UIScrollView,里面有imageview。我实现了scrollViewDidScroll委托,因此如果滚动确实滚动,我将创建一个NSURLConnection并从某个url下载数据,仅此一次

问题是NSURLConnection ConnectionIDFinishLoading只能在我在滚动视图上松开手指后调用或运行

更清楚地说,如果我用手指滚动scrollview,我确认已创建NSURLConnection,但只要我不释放scrollview,就永远不会调用ConnectionIDFinishLoading。松开手指后,将调用ConnectiondFinishLoading的委托

有人能给我解释一下吗


感谢

这是因为在滚动过程中,用户界面进入一个模式循环,处理用户滚动输入,在滚动完成之前,您的线程不会返回消息队列从NSURLConnection获取任何代理消息


您可以在一个单独的线程中运行NSURLConnection,当用户滚动时,该线程应该会持续发送消息,但您仍然无法调用UI线程。解决方法可能是让连接线程将数据写入一个无锁的数据结构中,然后UI线程可以读取该数据结构——但这可能很复杂

你好,你能发布一些代码来更好地了解这个问题吗?