2010-10-28 26 views
1

我的应用看起来像这样:iphone - 为什么NSURLConnection connectionDidFinishLoading未运行?

我有一个UIScrollView,里面有imageview。我实现了scrollViewDidScroll委托,以便如果滚动滚动,我将创建一个NSURLConnection并从一个url下载数据,只需要一次。

问题是NSURLConnection connectionDidFinishLoading只在我放开滚动视图的手指后被调用或运行。要更清楚地说明,如果我用我的手指滚动scrollview,我确认创建了NSURLConnection,但只要我不释放scrollview,connectionDidFinishLoading永远不会被调用。一旦我释放我的手指,就调用connectionDidFinishLoading的委托。

任何人都可以向我解释这个吗?

感谢

+0

你好,你可以发布一些代码来获得更好的问题图片吗? – fedmest 2010-10-28 11:20:48

回答

3

这是因为在滚动UI进入一个模式循环处理用户滚动投入,直到滚动完成你的线程不会得到回消息队列拿起从NSURLConnection的任何代表的消息。

您可以在单独的线程中运行NSURLConnection,当用户滚动时它应该保持泵送消息,但是仍然无法通过UI线程调用。这种方式可能会让连接线程将数据写入一个无锁数据结构,UI线程可以读取 - 但这可能会很复杂!

相关问题