美文网首页
iOS开发---一句话写单例方法

iOS开发---一句话写单例方法

作者: KYPoseidonL | 来源:发表于2015-11-20 17:42 被阅读455次

你想一句话写单例吗?
想就跟我一起来看看吧!(把单例定义成宏)

用法如下:
Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png
具体代码如下:
#define singletonInterface(classname)              +(instancetype)shared##classname;

#if __has_feature(objc_arc)

#define singletonImplemention(class) \
static id instanse;\
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone\
{\
    static dispatch_once_t onesToken;\
    dispatch_once(&onesToken, ^{\
        instanse = [super allocWithZone:zone];\
    });\
    return instanse;\
}\
\
+ (instancetype)shared##class\
{\
    static dispatch_once_t onestoken;\
    dispatch_once(&onestoken, ^{\
        instanse = [[self alloc] init];\
    });\
    return instanse;\
}\
\
- (id)copyWithZone:(NSZone *)zone\
{\
    return instanse;\
};
#else

#define singletonImplemention(class)  \
static id instanse;\
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone\
{\
    static dispatch_once_t onesToken;\
    dispatch_once(&onesToken, ^{\
    instanse = [super allocWithZone:zone];\
        });\
    return instanse;\
}\
\
+ (instancetype)shared##class\
{\
    static dispatch_once_t onestoken;\
    dispatch_once(&onestoken, ^{\
    instanse = [[self alloc] init];\
    });\
    return instanse;\
}\
\
- (id)copyWithZone:(NSZone *)zone\
{\
    return instanse;\
}\
\
- (oneway void)release {} \
- (instancetype)retain {return instance;} \
- (instancetype)autorelease {return instance;} \
- (NSUInteger)retainCount {return ULONG_MAX;}

#endif

另附代码下载地址:
http://pan.baidu.com/s/1jGItvgi

相关文章

  • iOS开发 单例使用问题

    iOS开发 单例使用问题 iOS开发 单例使用问题

  • iOS开发 单例使用问题

    iOS开发 单例使用问题 iOS开发 单例使用问题

  • iOS开发-单例模式

    iOS开发—单例模式 一、简单说明: 设计模式:多年软件开发,总结出来的一套经验、方法和工具 二、单例模式说明 (...

  • ios 单例

    做IOS好几年了,今天用单例这块,今天在单例出现了点小问题,(团队开发) 创建单例方法第一种 代码自己用可以;不严...

  • iOS开发---一句话写单例方法

    你想一句话写单例吗?想就跟我一起来看看吧!(把单例定义成宏) 用法如下: 具体代码如下: 另附代码下载地址:htt...

  • iOS 创建单例的方法

    iOS 创建单例的方法 方法一: 方法二:

  • Swift中如何编写单例?

    在使用swift编程语言进行iOS应用开发的时候,我们常常借助单例来进行状态管理,但由于实现单例的方法很多,问题就...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • iOS 单例设置为nil会怎样

    单例模式是各种开发语言中必然涉及到的一种设计模式,例如在iOS中有很多系统方法都是使用的单例,例如:[NSNoti...

网友评论

      本文标题:iOS开发---一句话写单例方法

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