单利

在.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];创建单利

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容