0

在瀏覽iOS 7運行時頭文件時,引起了我的注意。在MCNearbyServiceAdvertiser class(Multipeer連接框架的一部分)中,名爲syncQueue的屬性是,並定義了多個以sync爲前綴的方法。某些方法都以前綴和非前綴版本存在,如startAdvertisingPeersyncStartAdvertisingPeer爲什麼MCNearbyServiceAdvertiser在內部使用調度隊列?

我的問題是,這個屬性和這些前綴方法的目的是什麼,它們是如何組合的?

(編輯:刪除此話隊列是串行由CouchDeveloper指出的那樣,因爲我們無法知道這一點)

回答

1

如你所知,實施是私有的。

擁有一個名字爲syncQueue的調度隊列可能並不意味着這個隊列是一個串行隊列。它可能也是一個併發隊列。

我們只能猜測startAdvertisingPeer和「前綴」版本syncStartAdvertisingPeer可能意味着什麼。

例如,爲了滿足內部先決條件startAdvertisingPeer可能假設它總是從一個執行上下文調用除了syncQueue。這樣,它可以同步調用到syncQueue調用syncStartAdvertisingPeer而不會結束死鎖。另一方面,syncStartAdvertisingPeer將總是假設在syncQueue上執行,這樣保證了併發性。

但是,如前所述,我們不知道實際的細節 - 這只是一個粗略的猜測。通常情況下,你應該閱讀文檔 - 而不是一些私人頭文件的細節,以便在你的腦海中畫出一幅這個類可能如何工作的圖畫。

相關問題