美文网首页iOS 开发
iOS 常用单例宏

iOS 常用单例宏

作者: CodeGeass | 来源:发表于2016-06-29 10:12 被阅读96次

    在你的宏文件里面加入单例宏,快捷创建单例

    #define SINGLETON_INTERFACE(className) + (instancetype)shared##className;
    
    #define SINGLETON_IMPLEMENTATION(className) \
    static id instance; \
    + (instancetype)allocWithZone:(struct _NSZone *)zone { \
        static dispatch_once_t onceToken; \
        dispatch_once(&onceToken, ^{ \
            instance = [super allocWithZone:zone]; \
        }); \
        return instance; \
    } \
     \
    + (instancetype)shared##className { \
        static dispatch_once_t onceToken; \
        dispatch_once(&onceToken, ^{ \
            instance = [[self alloc] init]; \
        }); \
        return instance; \
    } \
     \
    - (id)copyWithZone:(NSZone *)zone { \
        return instance; \
    }
    

    调用

    .h

    SINGLETON_INTERFACE(Service)
    

    .m

    SINGLETON_IMPLEMENTATION(Service)
    

    相关文章

      网友评论

        本文标题:iOS 常用单例宏

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