OC单例模式的实现
2015-03-22 22:28
176 查看
SingleClass.m
main.m
结果:
#import <Foundation/Foundation.h> @class SingleClass; static SingleClass *instance = nil; @interface SingleClass : NSObject <NSCopying> + (instancetype)shareInstance; @end @implementation SingleClass //类方法,获取单例对象 + (instancetype)shareInstance{ if (!instance) { instance = [[self alloc] init]; } return instance; } //类方法,调用对象的alloc方法时返回已存在的单例 + (instancetype)allocWithZone:(struct _NSZone *)zone{ if (!instance) { instance = [super allocWithZone:zone]; } return instance; } //copy时,返回已存在的单例 - (id)copyWithZone:(NSZone *)zone{ return instance; } //copy时,返回已存在的单例 - (id)copy{ return instance; } @end
main.m
int main(int argc, const char * argv[]) { @autoreleasepool { SingleClass *s1 = [SingleClass shareInstance]; SingleClass *s2 = [SingleClass shareInstance]; SingleClass *s3 = [[SingleClass alloc] init]; SingleClass *s4 = [s1 copy]; NSLog(@"%p",s1); NSLog(@"%p",s2); NSLog(@"%p",s3); NSLog(@"%p",s4); } return 0; }
结果:
2015-03-22 22:24:21.201 SingleDemo[1349:61326] 0x1001066e0 2015-03-22 22:24:21.202 SingleDemo[1349:61326] 0x1001066e0 2015-03-22 22:24:21.202 SingleDemo[1349:61326] 0x1001066e0 2015-03-22 22:24:21.202 SingleDemo[1349:61326] 0x1001066e0
相关文章推荐
- 黑马程序员_ 利用oc的协议实现代理模式
- 编写高质量OC代码52建议总结:9.以“族类模式“隐藏实现细节
- OC的单例模式的实现
- OC的单例模式的实现
- 对MVC的理解?为什么要用MVC?在Cocoa中MVC是怎么实现的?你还熟悉其他的OC设计模式或别的设计模式吗
- 黑马程序员---OC学习笔记之利用协议实现代理模式
- 一句话实现OC单例模式
- OC高效率52之以类族模式隐藏实现细节
- Java之Builder模式(并用OC实现了这种模式)
- Swift实现OC中的单例模式
- 黑马程序猿_ 利用oc的协议实现代理模式
- 黑马程序员---OC学习笔记之简单的单例模式实现
- OC_协议实现代理委托模式
- Swift实现OC中的单例模式
- ——黑马程序员——OC中简单单列模式的实现
- 架构设计之设计模式 (四) Java中多种方式实现单例模式
- CRC 模式及实现
- 设计模式学习----观察者模式(事件监听实现)
- JavaWeb学习记录(二十)——Model1模式(javaBean+jsp)实现简单计算器案例
- MySQL分表实现上百万上千万记录分布存储的批量查询设计模式