单例设计的定义
2015-12-14 18:46
405 查看
/* 2 @synchronized 的作用是创建一个互斥锁,保证此时没有其 它线程对self对象进行修改。 这个是objective-c的一个锁定 令牌,防止self对象在同一时间内被其它线程访问,起到线程 的保护作用。一般在公用变量的时候使用,如单例模式或者 操作类的static变量中使用。 */ #import "Singleton.h" @implementation Singleton static id shared = nil;//2.初始化一个静态空指针 +(id)sharedInstance { @synchronized(self) { if(shared == nil) { shared = [[[self class] alloc]init]; } } return shared; } +(id)allocWithZone:(struct _NSZone *)zone { if(shared == nil) { shared = [super allocWithZone:zone]; } return shared; } +(id)alloc { if(shared == nil) { shared = [super alloc]; } return shared; } -(id)copyWithZone:(NSZone *)zone { return shared; } -(id)mutableCopyWithZone:(NSZone *)zone { return shared; } @end
相关文章推荐
- 排序算法 快速排序 归并排序 堆排序
- js 分页
- Git 常用命令整理
- 【Python真的很强大】多线程的使用
- 跟我一起写 Makefile(一)
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- 浏览器-07 chromium 渲染1
- Java Object Model(一)
- 精选强大的常用linux命令
- elasticsearch mapping 学习
- 2015 ACM/ICPC Asia Regional Shanghai Online --HDU 5478
- 修改tomcat配置文件启动多个tomcat
- 《精通使用AngularJS开发Web App》(三)--- 深入scope,继承结构,事件系统和生命周期
- [LeetCode]109. Construct Binary Tree from Inorder and Postorder Traversal由中序序列和后序序列重建二叉树...
- 同一form表单中,提交两个不同的action
- Toast 用于一个页面有多个提示
- [LeetCode]109. Construct Binary Tree from Inorder and Postorder Traversal由中序序列和后序序列重建二叉树
- Android蓝牙BLE之RSSI读写(2)
- 将创建线程的API-pthread_create封装成一个线程类
- 降低成本是永恒的追求(xamarin)