为什么Apple建议使用runloop而不是GCD来获取多个图像?

Hen*_*nry 8 iphone grand-central-dispatch ios

通过iOS 4.0中的Grand Central Dispatch加载图像(每个1块)是个好主意吗?(用于UITableView)

为什么Apple更喜欢runloop,如WWDC视频会话207和208所示?

Bra*_*son 7

在这些视频中提出的观点是,基金会网络目前还没有很好地与Grand Central Dispatch整合,所以如果你想做基于网络的网络,那么runloop是避免传统线程问题的最佳选择.但是,在第206节 - "在iPhone上引入块和Grand Central Dispatch"中,您将看到它们显示了如何使用GCD实现此目的的示例.

我,我更喜欢GCD,因为代码的优雅,因为(正如他们在那些视频中所述),它是未来的方式.


Mat*_*ong 6

我还没看过那些视频,但这里是Chris Hanson(Apple工程师)对GCD和NSOperation所说的话

始终使用可用的最高级抽象,并在测量显示需要时下拉到较低级抽象.

换句话说,您应该使用NSOperations进行异步处理(例如为表视图加载图像),除非您有充分的理由去寻找GCD.

  • 在这种情况下,创建NSOperation并将其放置在队列中的开销可能会在所有表视图行中相加,因此更轻量级的块可能更可取.Blocks和GCD也可以简化他的代码来完成这项任务. (3认同)