2016 - 1- 19 GCD单例模式

一:单例模式的作用:

1.可以保证在程序运行过程中,一个类只有一个实例,而且易于外界访问。2

2.从而方便的控制了实例的个数,节约系统资源。

二:单例模式的应用场景:

代码:

1.在一个需要实现单例模式的类中重写allocWithZone:方法,因为无论使用多少次alloc始终只会执行一次,而且在使用alloc方法时,最终也调用的是allocWithZone:这个方法

static CZPerson *_person;
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
      _person =  [super allocWithZone:zone];
    });
    return _person;
}

2.为了方便调用,也需要实现一个sharedPerson的方法,需要注意的是,这里最好也使用

static dispatch_once_t onceToken;
+(instancetype)sharedPerson{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
     _person =  [[self alloc] init];
    });
    return _person;
}

3.也需要重写copy这个对象方法,需要注意的是,这里可以直接返回_person,因为copy是个对象方法,也就是说要调用这个方法,就证明_person已经不为空了。

- (id)copyWithZone:(NSZone *)zone
{
    return _person;
}
时间: 2024-10-05 04:25:06

2016 - 1- 19 GCD单例模式的相关文章

Murano Weekly Meeting 2016.07.19

Meeting time: 2016.July.19 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary: 1.Backports Link:  https://etherpad.openstack.org/p/murano-stable-backports/ 2.Convergence so both of our CI servers are running heat with convergence n

2016.1.19 DEV Express控件GirdControl使用

DEV控件在工具箱中消失处理方法 开始-->程序-->Developer Express v2009 vol 3(依据版本不同)-->Components-->Tools-->ToolboxCreator   1.点击一行选择完整一行 Run Designer->View->OptionsBehavior->EditorShowMode 设置为:Click Run Designer->View->OptionsSelection.EnableAp

翻译:Gregory Larsen,2016/02/19(第一版:2014年12月17日)高级T-SQL阶梯1级:使用CROSS JOIN介绍高级T-SQL

原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/119933/ 原文作者:Gregory Larsen,2016/02/19(第一版:2014年12月17日) 系列 本文是"Stairway Series:Stairway to Advanced T-SQL"的一部分 这个阶梯将包含一系列文章,这些文章将在前面两个T-SQL阶梯,T-SQL DML和T-SQL超越基础知识的T-SQL基础上进行扩展. 这个楼梯应

2016.8.19

2016年8月19日.在杭州整整两个月.最近新添加了几个前端群.有一个群感觉特别的靠谱.很多分享.很多技术.给我的感觉有种干海绵碰到了大量的水.可能是做技术的对技术方面的渴求的这种感觉.老实说.之前对自己的技术是真的自信到不行.但是慢慢的,一些经历和经验.让自己对自己的判断越来越不像之前的那种浮夸感了.毕竟自己的经验还不够充足.资历就摆在这里.今天想到一句话.坐井观天,焉知是天? 勉励一下自己.希望能够不断前进.在努力和学习中不断攀高. 最后送一句:人生之所以迷茫,是因为我们的才华配不上我们的梦

OC - 19.GCD

简介 GCD(Grand Center Dispatch)是Apple为多核的并行运算提出的解决方案,纯C语言 更加适配多核处理器,且自动管理线程的生命周期,使用起来较为方便 GCD通过任务和队列实现多线程功能 任务:描述所要执行的操作 队列:用来存放所要执行的任务,队列中的任务遵循FIFO(First In First Out)原则 GCD的任务函数(是否开启新的线程) 同步 不具备开启新的线程的能力 同步执行任务的函数 void dispatch_sync(dispatch_queue_t

2016/09/19

1. Python视频 1) 多层装饰器 USER_INFO = {} def check_login(func): def inner(*args, **kwargs): if USER_INFO.get('is_login', None): ret = func(*args, **kwargs) return ret else: print('please login') return inner def check_admin(func): def inner(*args, **kwarg

G_S男女匹配算法(算法的第一个程序2016.09.19)

1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int Smallest_numberFree = 0;//记录单身的号码最低的男性 5 int i = Smallest_numberFree, n, k = -1;//n代表有多少对男女 6 7 cout << "请输出有多少对男女:"; 8 cin >> n; 9 int **Man = new int*[n], **Woma

2016.5.19——Excel Sheet Column Title

Excel Sheet Column Title 本题收获: 1.由int型转换为整型(string),如何转化, res = 'A'+(n-1)%26和之前由A-z转化为十进制相反,res = s[i]-'A'+1.(为什么有+1,-1还有点迷糊,貌似是十进制是0-9,26进制是) 2.十进制到26进制转化 题目: Given a positive integer, return its corresponding column title as appear in an Excel shee

2016.9.19小程序

制作一个界面完成员工信息的添加.显示和查找 实现步骤: 1.制作界面 2.建立员工类,包含姓名.年龄.性别.电话4个私有属性,加上get和set方法作为访问器和修改器 3.在事件类中加入一个员工数组的属性,用于保存员工信息,加入一个number的属性,用于记录员工的人数. 4.当单击添加时,从四个文本框中得到信息,并封装成员工对象,然后将员工对象加入员工数组,人数加1.如果超出数组的长度,添加按钮变灰,阻止用户继续添加. 5.当单击显示时,弹出对话框,显示现有员工的信息. 6.在姓名文本框中输入