• 利用GCD实现单利模式的宏代码


    以下是.h文件,使用时,直接在需要实现单例模式的类中导入头文件即可。

    // .h文件
    #define DenglSingletonH(name) + (instancetype)shared##name;
    
    // .m文件
    #define DenglSingletonM(name) 
    static id _instance; 
     
    + (instancetype)allocWithZone:(struct _NSZone *)zone 
    { 
        static dispatch_once_t onceToken; 
        dispatch_once(&onceToken, ^{ 
            _instance = [super allocWithZone:zone]; 
        }); 
        return _instance; 
    } 
     
    + (instancetype)shared##name 
    { 
        static dispatch_once_t onceToken; 
        dispatch_once(&onceToken, ^{ 
            _instance = [[self alloc] init]; 
        }); 
        return _instance; 
    } 
     
    - (id)copyWithZone:(NSZone *)zone 
    { 
        return _instance; 
    }

    使用方法:

    1.在.h中导入头文件名称

    2.在.h文件中,DenglSingletonH(ObjectName)

    3.在.m文件中,DenglSingletonM(ObjectName)

  • 相关阅读:
    集合
    网络
    File类
    laoshi
    石子合并《1》
    看球的巴士
    打鼹鼠~~线性DP
    题目分享:Wooden Sticks-线性动归
    pycharm怎么切换python版本
    Windows10下CMD输入Python没反应的解决方案
  • 原文地址:https://www.cnblogs.com/iOSDeng/p/5454193.html
Copyright © 2020-2023  润新知