zoukankan      html  css  js  c++  java
  • 单例的封装

    在项目中,我们需要全局只有一个实例,节省不必要的内存,这时我们就需要使用单例生成对象。

    这时把单例的代码封装成宏,就能方便我们下次使用了。

    在.h .m里直接导入头文件,调用 传入类名即可!

    singleton_interface(DataManager)

    singleton_implementation(DataManager)

     1 // .h
     2 #define singleton_interface(className) + (instancetype)shared##className;
     3 
     4 // .m
     5 // 最后一句不要斜线
     6 #define singleton_implementation(className) 
     7 static className *_instace; 
     8 
     9 + (id)allocWithZone:(struct _NSZone *)zone 
    10 { 
    11     static dispatch_once_t onceToken; 
    12     dispatch_once(&onceToken, ^{ 
    13         _instace = [super allocWithZone:zone]; 
    14     }); 
    15     
    16     return _instace; 
    17 } 
    18 
    19 + (instancetype)shared##className 
    20 { 
    21     if (_instace == nil) { 
    22         _instace = [[className alloc] init]; 
    23     } 
    24     
    25     return _instace; 
    26 }
    单例
  • 相关阅读:
    学习小记: Kaggle Learn
    eclipse 一些快捷键
    Map接口
    学习笔记
    泛型方法 类 接口
    TreeSet
    xml
    Java笔试题目-my
    迭代器三种遍历方法
    线程请求其他线程资源
  • 原文地址:https://www.cnblogs.com/zhangyang17/p/3590831.html
Copyright © 2011-2022 走看看