Objective c中的單例

2022-07-09 14:36:15 字數 887 閱讀 8352

ios中的單例模式

在objective-c中要實現乙個單例類,至少需要做以下四個步驟:

1、為單例物件實現乙個靜態例項,並初始化,然後設定成nil,

2、實現乙個例項構造方法檢查上面宣告的靜態例項是否為nil,如果是則新建並返回乙個本類的例項,

3、重寫allocwithzone方法,用來保證其他人直接使用alloc和init試圖獲得乙個新實力的時候不產生乙個新例項,

4、適當實現allocwithezone,copywithzone,release和autorelease。

下面以surveyruntimedata為例子:

static surveyruntimedata *sharedobj = nil; //第一步:靜態例項,並初始化。

@implementation surveyruntimedata

+ (surveyruntimedata*) sharedinstance //第二步:例項構造檢查靜態例項是否為nil

}return sharedobj;

}+ (id) allocwithzone:(nszone *)zone //第三步:重寫allocwithzone方法

}return nil;

}- (id) copywithzone:(nszone *)zone //第四步

- (id) retain

- (unsigned) retaincount

- (oneway void) release

- (id) autorelease

- (id)init

}@end

Objective C 單例模式

意圖 使得類的乙個物件成為系統的唯一例項。類只能有乙個例項,而且必須從乙個為人熟知的訪問點對其進行訪問,比如工廠方法。這個唯一的例項只能通過子類化進行擴充套件,而且擴充套件的物件不會破壞客戶端 import inte ce singletone nsobject singletone shareln...

Objective C中的單例模式 工具類

單例是ios開發中經常會用到的一種設計模式,顧名思義,即建立乙個類,該類在整個程式的生命週期中只有乙個例項物件,無論是通過new,alloc init,copy等方法建立,或者建立多少個物件,自始至終在記憶體中只會開闢一塊空間,直到程式結束,由系統釋放.如下圖用不同的方式建立6個物件,但通過列印其記...

objective c 單例類的簡單實現

假設單例的名字叫xmppmanager 以xmpp為例子 1,新建xmppmanager.h和xmppmanager.m檔案。2,實現xmppmanager.h 如下 inte ce xmppmanager nsobject 取得單例,如果不存在將新建 sharemanager 連線伺服器 void...