//
// Singleton.m
// SingletonText
//
// Created by 许德鸿 on 2019/3/19.
// Copyright © 2019 XuDeHong. All rights reserved.
//
#import "Singleton.h"
static Singleton *sharedInstanceObject = nil;
@implementation Singleton
+(instancetype)allocWithZone:(struct _NSZone *)zone
{
if(!sharedInstanceObject)
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstanceObject = [super allocWithZone:zone];
});
}
return sharedInstanceObject;
}
- (instancetype)init
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstanceObject = [super init];
});
return sharedInstanceObject;
}
- (id)copyWithZone:(NSZone *)zone
{
return sharedInstanceObject;
}
- (id)mutableCopyWithZone:(NSZone *)zone
{
return sharedInstanceObject;
}
+ (instancetype)sharedInstance
{
return [[self alloc] init];
}
@end
近期评论