天天看點

OBJ-C中dispatch_once的用法

見如下代碼:

首先聲明了2個靜态(全局)變量。無論你将它們放在方法内部還是外部都沒什麼關系。它們都被初始化為0(nil)。

sharedinstance存儲單例類執行個體的引用,而oncetoken是一個有趣的變量,實際它的資料類型是long。

dispatch_one函數僅僅運作block一次!傳入一個指向oncetoken的變量。僅僅當oncetoken為0時block才會運作,而當dispatch_once運作過block之後,會将oncetoken的值改為非零。