iOS 單例

 單例模式是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱爲單例類的特殊類。

 通過單例模式可以保證系統中一個類只有一個實例而且該實例易於外界訪問,從而方便對實例個數的控制並節約系統資源。

 如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。

1、用GCD創建,dispatch_once不僅意味着代碼僅會被運行一次,而且還是線程安全的
+(StudentObject *)defaultStudent
{
    static StudentObject *student;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        student = [[StudentObject alloc]init];
    });
    return student;
}
2、加鎖,保持單例的唯一性(防止同時申請多個對象)
+(WLText *)getInstance{
    static WLText *str;
    @synchronized(self){//關鍵字,同步,表示同一時間只能有一個線程在訪問
        if (str==nil) {
            str=[[WLText alloc]init];
        }
        return str;
    }
}

發佈了18 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章