單例模式

#創(chuàng)建一個單例3步1.在需要創(chuàng)建單例的類中 #import"HWSingleton.h" ,導入頭文件2.在.h 文件中? 加入代碼 HWSingletonM3.在.m 文件中? 加入代碼 HWSingletonH--------------- 我是分割線 --------------## Dog.h``` #import#import "HWSingleton.h" @interface Dog : NSObject HWSingletonH @end.```## Dog.m```#import "Dog.h"@interface Dog ()@end

@implementation Dog

HWSingletonM

@end

```

懵逼了吧, HWSingleton.h里到底是啥?

其實里面就是兩個宏,直接上代碼

# HWSingleton.h中的代碼

```

// .h文件

#define HWSingletonH? + (instancetype)shareInstance;

// .m文件

#define HWSingletonM \

\

static id _instance;\

+ (instancetype)allocWithZone:(struct _NSZone *)zone{\

\

static dispatch_once_t onceToken;\

dispatch_once(&onceToken, ^{\

_instance = [super allocWithZone:zone];\

});\

return _instance;\

}\

\

+ (instancetype)shareInstance{\

static dispatch_once_t onceToken;\

dispatch_once(&onceToken, ^{\

_instance = [[self alloc]init];\

});\

return _instance;\

}\

- (id)copyWithZone:(NSZone *)zone{\

return _instance;\

}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容