首页 > 其他 > 详细

2016 - 1- 19 GCD单例模式

时间:2016-01-19 14:03:58      阅读:117      评论:0      收藏:0      [点我收藏+]

一:单例模式的作用:

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;
}

 

2016 - 1- 19 GCD单例模式

原文:http://www.cnblogs.com/BJTUzhengli/p/5141813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!