废话不多说,直接上代码,创建一个继承于NSObject的类Singleton
在Singleton.h文件中代码如下
#import <Foundation/Foundation.h>
//.h文件
#define SingletonH + (instancetype)sharedInstance;
//加上斜杠是为了让编辑器认为下一行代码也是宏的内容
//.m文件
#define SingletonM \
static id _instance;\
\
+ (instancetype)sharedInstance\
{\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
_instance = [[self alloc]init];\
});\
return _instance;\
}\
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone\
{\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
_instance = [super allocWithZone:zone];\
});\
return _instance;\
}\
\
- (id)copyWithZone:(NSZone *)zone\
{\
return _instance;\
}
在Singleton.m文件中什么都不用写,只剩下一个这东西
#import "Singleton.h"
定义好了单利宏,接下来看下使用
创建一个SingletonView,继承于UIView类
在SingletonView.h文件中代码如下
#import <UIKit/UIKit.h>
#import "Singleton.h"
@interface SingletonView : UIView
SingletonH;
@end
在SingletonView.m文件中代码如下
#import "SingletonView.h"
@implementation SingletonView
SingletonM;
@end