gcd实现单例模式其一
来源:互联网 发布:关键字优化 编辑:程序博客网 时间:2024/05/19 00:40
现创建XMGPerson文件
#import "XMGPerson.h"
//严禁起见,用到copy
@interface XMGPerson ()<NSCopying> //签协议,调- (id)copyWithZone:(NSZone *)zone;方法
@end
@implementation XMGPerson
static XMGPerson *_person;
//目的:调多少次,都是一个person
+(instancetype)allocWithZone:(struct_NSZone *)zone{
//分配内存
//重写allect init的目的是同一个person
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_person = [superallocWithZone:zone];
});
return_person;
}
+ (instancetype)share{
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// 目的:调多少次,只alloc init一次
_person = [[selfalloc]init];//支调一次
});
return_person;
}
//+是类方法。-是对象方法
- (id)copyWithZone:(NSZone *)zone{
return_person;
}
@end
#import <Foundation/Foundation.h>
@interface XMGPerson : NSObject
+ (instancetype)share;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// NSLog(@"%@,%@",[XMGPerson share],[[XMGPerson alloc]init]);
//打印的结果是一样的,原因看目的一,二
XMGPerson *p = [XMGPersonshare];
XMGPerson *p2 = [pcopy];//完整的单列,在XMGPerson里添加了@interface XMGPerson ()<NSCopying>@end和- (id)copyWithZone:(NSZone *)zone{return _person;
}
- gcd实现单例模式其一
- GCD实现单例模式
- java 设计模式 其一 单例模式
- ios--GCD实现单例模式
- GCD---dispatch_once实现单例模式
- iOS--使用GCD实现单例模式
- 单例模式2-GCD实现单例模式
- Java设计模式其一【单例设计模式】
- ios开发单例模式——使用GCD实现单例模式 & 非ARC单例模式 &使用GCD和线程锁实现单例模式
- 多线程学习12-GCD实现单例模式
- ios-UI高级多线程 GCD实现单例模式
- Objective-C利用GCD技术实现单例模式
- ios GCD 创建单例模式
- 非ARC情况下---用GCD实现单例模式
- ios-单例模式饿汉式&GCD&懒汉式&宏方式的实现和条件编译
- GCD—互斥锁实现单例
- ios单例GCD实现方法
- GCD单例,完整的单例实现
- 读文章有感,致在大学中感到迷茫的你
- HDU2044--一只小蜜蜂(递推)
- 构造函数返回值问题
- CheckBox
- Vim脚本编程
- gcd实现单例模式其一
- 1005. 继续(3n+1)猜想 (25)
- 【java并发】线程同步工具Exchanger的使用
- 如何打造真正可动态扩展的服务架构
- centos6.5下搭建阿帕奇环境,查看静态页面
- Qt 预编译头文件(precompiled headers) 加快编译速度
- windows平台时间函数性能比较QueryPerformanceCounter,GetTickCount,ftime,time,GetLocalTime,GetSystemTimeAsFileTim
- U-BOOT移植心得
- android关于多dex打包的理解