您好,登錄后才能下訂單哦!
構造單例的幾種簡單方法:
1.
+ (id)shareInstance { static MyClass * myc = nil; @synchronized(self){ //關鍵字,同步,表示同一時間只能有一個線程在訪問 if (!myc) { myc = [[MyClass alloc] init]; } } return myc; }
2.dispatch_once_t
+ (id)shareInstance { static MyClass * myc = nil; static dispatch_once_t once; //鎖 dispatch_once(&once, ^{ //最多調用一次 MyClass = [[self alloc] init]; }); return myc; }
// 當第一次使用這個單例時,會調用這個init方法。 - (id)init { self = [super init]; if (self) { // 通常在這里做一些相關的初始化任務 } return self; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。