单例模式Singleton-OC版

代码-.h文件:

#import <Foundation/Foundation.h>

@interface Instance : NSObject

+ (instancetype)sharedInstance;

@end

 

代码-.m文件:

#import "Instance.h"

@implementation Instance

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;
}

- (id)mutableCopyWithZone:(NSZone *)zone {
    return _instance;
}

@end

 

posted @ 2016-11-01 23:33  Xwoder  阅读(196)  评论(0编辑  收藏  举报