GCD实现单例
2015-11-11 00:00
162 查看
摘要: GCD实现单例
GCD学习(三)
(1)单例模式
obj、newObj、copyObj执行的内存地址相同。
GCD学习(三)
(1)单例模式
//MyObject.h @interface MyObject : NSObject +(instancetype)defaultObject; @end //MyObject.m #import "MyObject.h" @interface MyObject ()<NSCopying> @end @implementation MyObject static MyObject *_instance; //重写allocWithZone +(instancetype)allocWithZone:(struct _NSZone *)zone { static dispatch_once_t objOnce; dispatch_once(&objOnce, ^{ _instance = [super allocWithZone:zone]; }); return _instance; } //自定义单例函数 +(instancetype)defaultObject { static dispatch_once_t objOnce; dispatch_once(&objOnce, ^{ _instance = [[self alloc] init]; }); return _instance; } //重写copyWithZone - (id)copyWithZone:(NSZone *)zone { return _instance; } //执行结果 MyObject *obj = [MyObject defaultObject]; MyObject *newObj = [[MyObject alloc] init]; MyObject *copyObj = [newObj copy]; NSLog(@"%@",obj); NSLog(@"%@",newObj); NSLog(@"%@",copyObj);
obj、newObj、copyObj执行的内存地址相同。
相关文章推荐
- php设计模式之单例模式实例分析
- JavaScript编程的单例设计模讲解
- C#设计模式之单例模式实例讲解
- JS模式之单例模式基本用法
- 深入理解JavaScript系列(25):设计模式之单例模式详解
- Java单例模式、饥饿模式代码实例
- Android源码学习之单例模式应用及优点介绍
- C++设计模式之单例模式
- C#窗口实现单例模式的方法
- Java线程安全中的单例模式
- PHP单例模式详细介绍
- PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
- php实现singleton()单例模式实例
- PHP中数据库单例模式的实现代码分享
- php利用单例模式实现日志处理类库
- 浅析php单例模式
- php单例模式实现方法分析
- javascript单例模式的简单实现方法
- js单例模式的两种方案
- php单例模式示例分享