OC 单例模式

2018-07-24  本文已影响2人  CaptainRoy
#import <Foundation/Foundation.h>

@interface Singleton : NSObject

+(Singleton *)shareInstance;

@end
#import "Singleton.h"

@implementation Singleton

+(Singleton *)shareInstance
{
    static Singleton *singleton = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singleton = [[super allocWithZone:NULL] init];
    });
    return singleton;
}

+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
    return [Singleton shareInstance];
}

-(instancetype)copyWithZone:(struct _NSZone *)zone
{
    return [Singleton shareInstance];
}

-(instancetype)mutableCopyWithZone:(struct _NSZone *)zone
{
    return [Singleton shareInstance];
}

@end
上一篇下一篇

猜你喜欢

热点阅读