【发布时间】:2012-11-03 10:54:33
【问题描述】:
我遇到了[UICollectionView reloadData] 的问题,在我指定的代表上调用numberOfSectionsInCollectionView 之前,它似乎卡住了很长一段时间。这就是发生的事情:
应用程序以立即可见的 UICollectionView 开始,并在委托上调用 numberOfSectionsInCollectionView,该委托返回空数组(即 0)中的项目数,并立即开始从 Web 服务下载该数组的数据。下载完成后,将数据反序列化并添加到上述数组中,然后在UICollectionView 实例上调用reloadData。这是应用程序似乎停止执行任何操作的地方,并且在 20-30 秒(或有时长达一分钟)后,代理会收到对 numberOfSectionsInCollectionView 的调用。收到此调用后,重新加载很快完成。
我相信reloadData 在它自己的线程中运行,但我尝试在单独的线程中启动它,以确保它不是我的任何代码阻塞进程。 reloadData 看起来卡住时会做什么? reloadData 和 numberOfSectionsInCollectionView 之间是否有我应该实施的中间委托方法?就 iOS 开发人员而言,我认为这是重新加载后调用的第一个方法。
如果有人能告诉我可能出了什么问题,那太好了,但我也非常感谢有关如何调试此问题的任何提示!
【问题讨论】:
-
确保在主线程上调用了 reloadData。还要确保不要从后台线程修改支持数组。
-
天才@phix23!回复一下,以便我接受您的回答。
标签: ios reloaddata uicollectionview