iOS單例模式

2021-09-22 17:07:15 字數 1086 閱讀 5798

下午幫同事改了一下午的**,深深的被刺傷了,也深深的覺得**架構的重要性,更深深的覺得應該好好的打磨一下設計模式。於是乎就鑽研一下設計模式由易到難,先從ios最簡單的單例模式說起。

怎樣建立乙個單例?

static singleton * _instance =nil;
+(instancetype)shareinstance

); return _instance;

}

我們例項化物件的時候通常會通過alloc、init或者copy的方法,當我們呼叫alloc方法時,oc內部會呼叫allocwithzone這個方法來申請記憶體。拷貝物件也是同樣的原理,oc內部呼叫copywithzone方法,所以我們需要重寫這兩個方法,從而保證例項的單一性:

+(instancetype)allocwithzone:(struct _nszone *)zone

-(instancetype)copywithzone:(struct _nszone *)zone

讓我們呼叫一下:

singleton *obj1=[singleton shareinstance];

nslog(@"obj1=%@",obj1);

singleton *obj2=[singleton shareinstance];

nslog(@"obj2=%@",obj2);

singleton *obj3=[[singleton alloc]init];

nslog(@"obj3=%@",obj3);

singleton *obj4=[[singleton alloc]init];

nslog(@"obj4=%@",[obj4 copy]);

2016-03-04 18:26:00.204  obj1=2016-03-04 18:26:00.205  obj2=2016-03-04 18:26:00.205  obj3=2016-03-04 18:26:00.205  obj4=

IOS 單例模式

單例模式顧名思義就是只有乙個例項,它確保乙個類只有乙個例項,並且自行例項化並向整個系統提供這個例項。它經常用來做應用程式級別的共享資源控制。這個模式使用頻率非常高,通過乙個單例類,可以實現在不同視窗之間傳遞資料。在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙...

iOS 單例模式

最近在ios開發中,需要用到單例模式,於是自己動手寫了乙個,它看起來是這樣的 1 id sharedinstance return sharedinstance 後來發現許多書上的做法都使用到了bool變數作為標值位,它看起來是這樣的 2 id sharedinstance return share...

iOS 單例模式

在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙個靜態例項,並初始化,然後設定成nil,2 實現乙個例項構造方法檢查上面宣告的靜態例項是否為nil,如果是則新建並返回乙個本類的例項,3 重寫allocwithzone方法,用來保證其他人直接使用alloc和in...