static surveyruntimedata *sharedobj = nil; //第一步:靜態例項,並初始化置為nil。
@implementation surveyruntimedata
+ (surveyruntimedata*) sharedinstance //第二步:例項構造檢查靜態例項是否為nil。
@synchronized (self) {
if (sharedobj == nil)
[[self alloc] init];
return sharedobj;
+ (id) allocwithzone:(nszone *)zone //第三步:重寫allocwithzone方法 {
@synchronized (self) {
if (sharedobj == nil) {
sharedobj = [super allocwithzone:zone];
return sharedobj;
return nil;
- (id) copywithzone:(nszone *)zone
//第四步
return self;
- (id) retain {
return self;
- (unsigned) retaincount {
return uint_max;
- (oneway void) release {
- (id) autorelease {
return self;
- (id)init {
@synchronized(self) {
[super init];
//往往放一些要初始化的變數.
return self;
@end
iOS 單例設計模式
聯絡人 石虎暱稱 嗡嘛呢叭咪哄 一 概念 單例模式 singleton 也叫單態模式,是設計模式中最為簡單的一種模式 1.單例的作用 整個應用或系統只能有該類的乙個例項,即是在整個專案中,這個類的物件只能被初始化一次。單例類保證了應用程式的生命週期中有且僅有乙個該類的例項物件,而且易於外界訪問。2....
iOS設計模式 單例
備註 只能通過類的類方法才能建立單例類的例項,類名 alloc init 建立例項沒有用的。原理圖 1.單例模式人人用過,嚴格的單例模式很少有人用過 2.嚴格的單例模式指的是無法通過常規的 alloc init 方法來生成物件,派生出來的子類也不能產生出物件,而只能通過單例的方法獲取到物件原始碼 s...
IOS設計模式 單例設計模式
在軟體工程中,單例是一種用於實現單例的數學概念,即將類的例項化限制成僅乙個物件的設計模式。或者我的理解是 單例是一種類,該類只能例項化乙個物件。有些變數只需要初始化一次 如從檔案中讀取配置引數,讀取裝置型號等等 可以使用dispatch once來進行讀取優化,保證只呼叫api一次,以後就只要直接訪...