zoukankan      html  css  js  c++  java
  • 创建和使用单例模式(宏)

     1 // .h文件
     2 #define ZWSingletonH(name) + (instancetype)shared##name;
     3 
     4 // .m文件
     5 #define ZWSingletonM(name) 
     6 static id _instance; 
     7  
     8 + (instancetype)allocWithZone:(struct _NSZone *)zone 
     9 { 
    10     static dispatch_once_t onceToken; 
    11     dispatch_once(&onceToken, ^{ 
    12         _instance = [super allocWithZone:zone]; 
    13     }); 
    14     return _instance; 
    15 } 
    16  
    17 + (instancetype)shared##name 
    18 { 
    19     static dispatch_once_t onceToken; 
    20     dispatch_once(&onceToken, ^{ 
    21         _instance = [[self alloc] init]; 
    22     }); 
    23     return _instance; 
    24 } 
    25  
    26 - (id)copyWithZone:(NSZone *)zone 
    27 { 
    28     return _instance; 
    29 }

    注:上面代码只需要在.h文件夹中即可

    如果想要使用的话,可以直接在需要设置单例模式类的.h文件中输入:ZWSingletonH(类名)

                            .m文件中输入:ZWSingletonM(类名)

    需要用的时候直接:[类名 + shared类名] 即可

  • 相关阅读:
    三种基本排序算法
    sourcetree push限制大小
    移动端布局注意事项
    margin-top 实效问题
    布局方式
    web前端开发工程师
    eScript 简记
    Siebel script for Pre Events
    Siebel Performance for Script <1>
    Siebel Presumed Child Property Set
  • 原文地址:https://www.cnblogs.com/hissia/p/5676016.html
Copyright © 2011-2022 走看看