OC的单例模式的实现
来源:互联网 发布:数据分析介绍 编辑:程序博客网 时间:2024/05/21 09:22
以下是在ARC,GCD下的单例模式实现:
头文件中申明类方法getInstance:
#import <Foundation/Foundation.h>@interface SingleTon : NSObject+ (SingleTon*) getInstance;@property (nonatomic,strong) NSString* SingleData;@end
实现中,使用静态变量instance存储单例,在init中设置使用GCD的dicpatch_once来执行只运行一次的线程安全代码.即设置在init中,只在instance为nil时,来进行初始化,将获得的对象赋值给instance,并返回instance.在OC中不能隐藏构造函数,而我认为,这种情况下,对构造函数进行一些修改,使使用者即使能调用init,但最终获得得依然是单例对象:
@implementation SingleTonstatic SingleTon* instance;-(instancetype)init{ static dispatch_once_t once; dispatch_once(&once,^{ instance = [super init]; if(nil != instance){ instance.SingleData = @"init"; } }); return instance;}+(SingleTon *) getInstance{ if(nil == instance){ instance = [[self alloc]init]; } return instance;}@end个人暂时感觉这样很安全了.
1 0
- OC的单例模式的实现
- OC的单例模式
- OC的单例模式
- OC的单例模式
- OC单例的实现
- oc重要的单例模式
- OC中实现单例的方法
- Swift实现OC中的单例模式
- 黑马程序员---OC学习笔记之简单的单例模式实现
- 【iOS提高】单例模式在OC的使用
- 单例模式的实现
- 单例模式的实现
- 单例模式的实现
- 单例模式的实现
- 单例模式的实现
- 单例模式的实现
- 单例模式的实现
- 单例模式的实现
- 开始刷leetcode day72:Binary Tree Postorder Traversal
- MySQL引擎之一infobright
- zoj 1542 Network
- 优化Direct3D中多流(Multistreaming)的资源分配
- iOS开发之沙盒机制(SandBox)
- OC的单例模式的实现
- 链式队列
- Ajax-表单传值
- Persist Security Info=False是干什么的
- CentOS/Redhat:手动配置IP地址(命令和图形界面)
- Cookie,Session,Application区别与用法
- POJ 2677 Tour
- 使用exe4j制作Java启动程序的的等候界面
- eclipse集成版工具下载地址