由于这样那样的原因,我们说服自己使用单例,那么总结一下单例的定义:
static LJKJGoodClassManager *singleton = nil;
#pragma mark- 单例
+(instancetype)shareManager{
static dispatch_once_t onceT;
dispatch_once(&onceT, ^{
singleton = [[LJKJGoodClassManager alloc]init];
});
return singleton;
}
+(instancetype)allocWithZone:(struct _NSZone *)zone{
static dispatch_once_t onceT;
dispatch_once(&onceT, ^{
singleton = [super allocWithZone:zone];
});
return singleton;
}
-(id)copyWithZone:(NSZone *)zone{
return singleton;
}
-(id)mutableCopyWithZone:(NSZone *)zone{
return singleton;
}