//
// KIT.m
//
//
// Created by yz on 15/9/28.
// Copyright (c) 2015年 yz. All rights reserved.
//
import “KIT.h”
static KIT *_kit = nil;
@implementation KIT
+(instancetype)allocWithZone:(struct _NSZone *)zone
{
if (_kit == nil) {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//此方法只会运行一次
_kit = [super allocWithZone:zone];
});
}
return _kit;
}
-(instancetype)init
{
//只初始化一次
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_kit = [super init];
});
return _kit;
}
//此类方法等价于[类名 alloc]init]
+(instancetype)shareKit
{
return [[self alloc]init];
}
//此方法重写不能继承[super release]那样_kit==nil因为开始的时候已经分配好空间,这样就会让_kit一直等于nil实现不了单例子
-(oneway void)release
{
}
-(instancetype)retain
{
return self;
}
@end