iOS设计模式-单例模式

#import <Foundation/Foundation.h>

@interface WKPerson : NSObject

+ (instancetype)sharedInstance;

@end
#import "WKPerson.h"

@interface WKPerson () <NSCopying>

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

推荐阅读更多精彩内容