iOS设计模式-单例模式

#import 

@interface WKPerson : NSObject

+ (instancetype)sharedInstance;

@end
#import "WKPerson.h"

@interface WKPerson () 

@end

@implementation WKPerson

static id _instance;

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

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
        _instance = [super allocWithZone:zone];
    });

    return _instance;
}

+ (instancetype)sharedInstance {

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
        _instance = [[self alloc]init];
    });

    return _instance;
}

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

    return _instance;
}
@end

你可能感兴趣的:(iOS设计模式-单例模式)