zoukankan      html  css  js  c++  java
  • iOs开发 单例模式 省懒宏

    #define singleton_h(name) + (instancetype)shared##name;
    
    #if __has_feature(obj_arc)
    #define singleton_m(name)
    static id _instance;
    + (instancetype)shared##name
    {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    _instance = [[self alloc] init];
    });
    return _instance;
    }
    + (id)allocWithZone:(struct _NSZone *)zone
    {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    _instance = [super allocWithZone:zone];
    });
    return _instance;
    }
    + (id)copyWithZone:(struct _NSZone *)zone
    {
    return _instance;
    }
    
    #else
    #define singleton_m(name)
    static id _instance;
    + (instancetype)shared##name
    {
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            _instance = [[self alloc] init];
        });
        return _instance;
    }
    + (id)allocWithZone:(struct _NSZone *)zone
    {
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            _instance = [super allocWithZone:zone];
        });
        return _instance;
    }
    + (id)copyWithZone:(struct _NSZone *)zone
    {
        return _instance;
    }
    
    - (oneway void)release
    {
    }
    - (id)autorelease
    {
        return _instance;
    }
    - (id)retain
    {
        return _instance;
    }
    - (NSUInteger)retainCount
    {
        return 1;
    }
    #endif
    
  • 相关阅读:
    jquery 筛选元素(1)
    jquery操作元素的位置
    jquery 操作css 选择器
    jquery 操作css 尺寸
    jquery 标签中的属性操作
    jquery基本选择器
    jquery表单属性筛选元素
    jquery属性值选择器
    jquery 层级选择器
    jquery的基本选择器
  • 原文地址:https://www.cnblogs.com/dyf520/p/3809302.html
Copyright © 2011-2022 走看看