单利

作者: BlueSky520 | 来源:发表于2017-10-12 10:51 被阅读0次

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

    相关文章

      网友评论

          本文标题:单利

          本文链接:https://www.haomeiwen.com/subject/yuynyxtx.html