单利

2017-10-12  本文已影响0人  BlueSky520

在.m文件:

#import "NewTool.h"

@implementation NewTool

static NewTool * _tool = nil;

+ (instancetype)shareInstance {

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_tool = [[super allocWithZone:NULL] init];

//不是使用alloc方法,而是调用[[super allocWithZone:NULL] init]

//已经重载allocWithZone基本的对象分配方法,所以要借用父类(NSObject)的功能来帮助出处理底层内存分配的杂物

});

return _tool;

}

+ (id)allocWithZone:(struct _NSZone *)zone {

return [NewTool shareInstance];

}

- (id)copy{

return [NewTool shareInstance];

}

- (id)mutableCopy{

return [NewTool shareInstance];

}

在.h文件:

#import@interface NewTool : NSObject

+ (instancetype)shareInstance;

@end

用法:在需要的使用的文件中import “NewToll.h”,使用NewTool * tool = [NewTool shareInstance];创建单利

上一篇下一篇

猜你喜欢

热点阅读