//
// 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