iOS的單例設計

2021-06-27 18:13:39 字數 812 閱讀 3443

1、宣告乙個單例物件的靜態例項,並初始化為nil;

2、建立乙個類的工廠方法,生成發乙個該類的例項,當且僅當這個類的例項為nil時覆蓋allocwithzone方法,確保使用者(程式設計師)在直接分配和初始化的時,不會產生另乙個物件。

3、實現

nscopying協議,覆蓋release,autorelease,retain,retain count方法,以此保證單例的狀態

4、多執行緒的環境中,注意使用synchronized關鍵字,確保靜態例項被正確的建立和初始化。

應用舉例

usercontext.m

@inte***ce usercontext :nsobject

@property(nonatomic,copy)

nsstring

*username;

@property(nonatomic,copy)

nsstring

*email;

+(id)shareusercontext;

@end

usercontext.m

static

usercontext *segtoninstance=nil;

@implementationusercontext

+(id)shareusercontext

}return

segtoninstance; }

+(id)allocwithzone:(nszone *)zone

return

segtoninstance; }

-(id)copywithzone:(nszone *)zone

iOS 單例設計模式

聯絡人 石虎暱稱 嗡嘛呢叭咪哄 一 概念 單例模式 singleton 也叫單態模式,是設計模式中最為簡單的一種模式 1.單例的作用 整個應用或系統只能有該類的乙個例項,即是在整個專案中,這個類的物件只能被初始化一次。單例類保證了應用程式的生命週期中有且僅有乙個該類的例項物件,而且易於外界訪問。2....

iOS設計模式 單例

備註 只能通過類的類方法才能建立單例類的例項,類名 alloc init 建立例項沒有用的。原理圖 1.單例模式人人用過,嚴格的單例模式很少有人用過 2.嚴格的單例模式指的是無法通過常規的 alloc init 方法來生成物件,派生出來的子類也不能產生出物件,而只能通過單例的方法獲取到物件原始碼 s...

IOS單例的設計模式

static surveyruntimedata sharedobj nil 第一步 靜態例項,並初始化置為nil。implementation surveyruntimedata surveyruntimedata sharedinstance 第二步 例項構造檢查靜態例項是否為nil。synch...