IOS --- 單例模式

dispatch_once

dispatch_once函數是保證在應用程序執行中只執行一次指定處理的API。下面這種經常出現的用來進行初始化的源代碼可通過dispatch_once函數簡化:

static int initialized = NO;
if (initalized == NO){
    /*
    *初始化
    */
    initialized = YES;
}

如果使用dispatch_once函數,則源代碼改爲:

static dispatch_once_t pred;
dispatch_once (&pred, ^{
    /*
    *初始化
    */
});

源代碼看起來沒有太大的變化。但是通過dispatch_once函數,該源代碼即使在多線程環境下執行,也可保證百分之百安全。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章