博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC 单例实现
阅读量:6183 次
发布时间:2019-06-21

本文共 1184 字,大约阅读时间需要 3 分钟。

 

 

2. 在.h 文件遵循 <NSCopying,NSMutabalecopying>

 

3.定义宏,实现任意类型单单例

 

#define SingleH(name) +(instancetype)share##name;#if __has_feature(objc_arc)//条件满足 ARC#define SingleM(name) static id _instance;\+(instancetype)allocWithZone:(struct _NSZone *)zone\{\static dispatch_once_t onceToken;\dispatch_once(&onceToken, ^{\_instance = [super allocWithZone:zone];\});\\return _instance;\}\\+(instancetype)share##name\{\return [[self alloc]init];\}\\-(id)copyWithZone:(NSZone *)zone\{\return _instance;\}\\-(id)mutableCopyWithZone:(NSZone *)zone\{\return _instance;\}#else//MRC#define SingleM(name) static id _instance;\+(instancetype)allocWithZone:(struct _NSZone *)zone\{\static dispatch_once_t onceToken;\dispatch_once(&onceToken, ^{\_instance = [super allocWithZone:zone];\});\\return _instance;\}\\+(instancetype)share##name\{\return [[self alloc]init];\}\\-(id)copyWithZone:(NSZone *)zone\{\return _instance;\}\\-(id)mutableCopyWithZone:(NSZone *)zone\{\return _instance;\}\-(oneway void)release\{\}\\-(instancetype)retain\{\    return _instance;\}\\-(NSUInteger)retainCount\{\    return MAXFLOAT;\}#endif

  

4.使用 括号里的名字 自己定义,但是h和m文件要一样

在 .h文件

 在.m文件

 

转载于:https://www.cnblogs.com/qingzZ/p/9258902.html

你可能感兴趣的文章
ubuntu 系统环境配置文件的区别
查看>>
精通visual c++指纹模式识别系统算法及实现
查看>>
博客园自定义页面风格设计 后续篇(页面设计模式及代码高亮 鼠标点击效果升级)...
查看>>
[知识盲点] 为function添加值为function的属性
查看>>
Emacs for Windows use TRAMP
查看>>
ssh登录的调试方法和常见问题
查看>>
PHP 7.3 比 PHP 7.0 快 22%,即将进入特性冻结阶段
查看>>
Java 9 文章集锦
查看>>
案例丨数据驱动的发现页最低成本改版
查看>>
普通用户竟这样执行xp_cmdshell存储过程!
查看>>
Visualize Famous Campus in China
查看>>
C#给PDF文档添加文本和图片页眉
查看>>
为Exchange Server 2010服务器申请证书
查看>>
httpd之Forbidden问题解决
查看>>
输入的字符串分割后 ,通过查询语句查询结果集
查看>>
三台linux服务器相互ssh 无密码验证登陆
查看>>
.htaccess文件的作用(访问控制)
查看>>
了解你所不知道的SMON功能(四):维护col_usage$字典基表
查看>>
saltstack的安装和初步试用体验
查看>>
wall命令
查看>>