2010-10-28 43 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線程可以讀取 - 但這可能會很複雜!

相關問題