iOS设计模式-单例模式

2016-08-18  本文已影响52人  阿拉斯加的狗
#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
上一篇 下一篇

猜你喜欢

热点阅读