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

转载 2015年11月21日 11:15:52

转自http://www.jianshu.com/p/3fd9f5a4d715

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

用法如下:

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开发创建单例的两种方法

创建一个单例很多办法。我先列举一个苹果官方文档中的写法。   [cpp] view plaincopy static AccountManager *Defa...

iOS一句话加载音频,下载音频

  • 2013年10月22日 09:08
  • 362KB
  • 下载

【Cocos2d-x】新手自学(十)分辨率自适应!一句话搞定IOS android windows!!

前几天我用在windows下面写好的程序..忽然需求要移植成安卓和ios平台.于是遇到了各种麻烦..最棘手的一个就是分辨率的自适应,我工程的图片用的都是800x480的.. 可是iphone...

iOS-MJExtension一句话搞定对象归档

MJExtension很强大,几乎支持现有所有的模型、字典、json数据转换,而且效率非常高 以前写对象归档的时候,需要让这个对象实现NSCoding协议,而且要对每一个需要归档的属性做一些enc...
  • iotjin
  • iotjin
  • 2016年05月05日 22:19
  • 486

用户体验是什么东西?如何评价用户体验好坏?怎样用一句话描述用户体验评价方法的核心?

个人对用户体验的目标是,做到“自然”。 举几个例子, 1,我观察3岁的小孩用iphone很容易上手。比如,iphone的开锁,小孩甚至不用学就会用。因为触摸是人的天性,同时iphone通过...

用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心?

用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心?        提出这个问题的目的,我希望能找出一种可以把用户体验可以量化的方法,例如好的用户体验可能...
  • Ylxin
  • Ylxin
  • 2012年05月17日 09:26
  • 1269

用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心?

个人对用户体验的目标是,做到“自然”。 举几个例子, 我观察3岁的小孩用iphone很容易上手。比如,iphone的开锁,小孩甚至不用学就会用。因为触摸是人的天性,同时iphone通过箭头...

一句话使用方法

  • 2013年02月17日 18:17
  • 4KB
  • 下载

MySQL导出一句话拿WebShell的方法

  • 2010年06月19日 13:46
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发---一句话写单例方法
举报原因:
原因补充:

(最多只允许输入30个字)