我遇到了[UICollectionView reloadData]
問題,在我指定的委託中,它似乎卡住了很長一段時間,然後才調用numberOfSectionsInCollectionView
。這是發生了什麼事情:UICollectionView卡在reloadData中
該應用程序以UICollectionView立即可見並且在代理上調用numberOfSectionsInCollectionView
,該代理返回空數組中的項目數(即0),並立即開始從該數組下載數據一個Web服務。一旦下載完成,數據被反序列化並添加到上述數組中,然後在UICollectionView
實例上調用reloadData
。這是應用程序似乎停止做任何事的地方,在20-30秒(或有時長達一分鐘)之後,代表接到致電numberOfSectionsInCollectionView
。一旦收到此呼叫,重新加載就會很快完成。
我相信reloadData
運行在自己的線程,但我試過在單獨的線程中啓動它,以確保它不是我的任何代碼阻塞進程。 reloadData
在卡住的時候可以做些什麼?我應該實施reloadData
和numberOfSectionsInCollectionView
之間是否有任何中介委託方法?就iOS開發人員而言,我認爲這是第一個在重新加載後調用的方法。
如果有人能告訴我什麼可能會出錯,太棒了,但我也很感激任何提示如何調試!
確保在主線程上調用reloadData。另外請確保您不要從後臺線程修改後備數組。 – Felix
Genius @ phix23!做出答覆,以便我可以接受你的答案。 – Merott