相关疑难解决方法(0)

使用GCD进行最后进入堆叠?

我有一个UITableView,显示与每行中的联系人关联的图像.在一些情况下,这些图像在地址簿联系人图像的第一显示器上被读取,并且在没有一个的情况下,他们是基于存储的数据呈现的化身.我现在使用GCD在后台线程上更新这些图像.然而,这种加载快速滚动时,这意味着该队列变得冗长而当用户停止滚动当前细胞是他们所要求的顺序,图像最后得到更新.在iPhone 4上,这个问题并不是很明显,但我很想支持旧硬件并在iPhone 3G上进行测试.延迟是可以容忍的,但非常明显.

令我感到震惊的是,Last In-First Out堆栈似乎很可能在很大程度上解决了这个问题,因为每当用户停止滚动这些单元格时,下一个将被更新,然后将更新当前屏幕外的其他单元格.Grand Central Dispatch可以做到这样吗?或者没有太繁重的其他方式实施?

顺便说一下,我注意到我正在使用带有SQLite存储的Core Data而我没有使用NSFetchedResultsController,因为为了加载此视图的数据,必须遍历多对多关系.(据我所知,这排除了使用NSFetchedResultsController.) [我发现NSFetchedResultsController可以与多对多关系一起使用,尽管官方文档似乎在说.但是我还没有在这种情况下使用它.

另外:请注意,虽然主题是"我如何使用GCD创建最后进入第一个堆栈",但实际上我只想解决上面列出的问题并且可能有更好的方法来实现它.我非常愿意接受像timthetoolman那样以另一种方式解决问题的建议; 如果这样的建议最终是我使用的,我会认识到原始问题的最佳答案以及我最终实施的最佳解决方案...... :)

iphone objective-c uitableview grand-central-dispatch ios

28
推荐指数
3
解决办法
6343
查看次数