单例模式

创建一个单例3步

1.在需要创建单例的类中 #import"HWSingleton.h" ,导入头文件

2.在.h 文件中 加入代码 HWSingletonM

3.在.m 文件中 加入代码 HWSingletonH

--------------- 我是分割线 --------------

Dog.h

 #import <Foundation/Foundation.h>    
 #import "HWSingleton.h"
 @interface Dog : NSObject
 HWSingletonH
 @end.

Dog.m

#import "Dog.h"
@interface Dog ()<NSCopying>

@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;\
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式作用 可以保证在程序运行过程中,一个类只有一个实例,而且该实例易于供外界使用 从而方便地控制了实例个数,并...
    珍此良辰阅读 1,357评论 3 8
  • #创建一个单例3步1.在需要创建单例的类中 #import"HWSingleton.h" ,导入头文件2.在.h ...
    流行的武阅读 240评论 1 0
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 4,290评论 4 34
  • 一.什么是单例模式 单例模式的定义:确保一个类只有一个实例,并提供一个访问他的全局访问点。单例模式是几个设计模式中...
    Geeks_Liu阅读 2,240评论 0 10
  • 1.单例模式概述 (1)引言 单例模式是应用最广的模式之一,也是23种设计模式中最基本的一个。本文旨在总结通过Ja...
    曹丰斌阅读 2,996评论 6 47