当我浏览iOS 7运行时标题时,有些东西引起了我的注意。在Multipeer Connectivity框架的MCNearbyServiceAdvertiser class部分中,定义了一个名为syncQueue
的属性,并定义了多个以sync
为前缀的方法。某些方法都存在于前缀和非前缀版本中,例如startAdvertisingPeer
和syncStartAdvertisingPeer
。
我的问题是,这个属性和这些前缀方法的目的是什么,以及它们是如何组合的?
(编辑:删除了CouchDeveloper指出的队列串行的注释,因为我们无法知道)
答案 0 :(得分:1)
如您所知,实施是私有的。
拥有名称为syncQueue
的调度队列可能并不意味着此队列是串行队列。它也可能是并发队列。
我们只能猜测startAdvertisingPeer
和“前缀”版本syncStartAdvertisingPeer
可能意味着什么。
例如,为了满足内部先决条件startAdvertisingPeer
可能假设始终从执行上下文调用 syncQueue EM>。这样,它可以同步调度到syncQueue并调用syncStartAdvertisingPeer
而不会陷入死锁。另一方面,syncStartAdvertisingPeer
将始终假定在 syncQueue 上执行,这样可以保证并发。
但是,如上所述,我们不知道实际的细节 - 这只是一个粗略的猜测。通常,您应该阅读文档 - 而不是一些私有标题详细信息,以便在您的脑海中绘制出一个可能有效的类。