今天在看多线程同步时,突然想到了单例的同步问题。自从dispatch_once出现后,我们创建单例非常简单且安全:1 static dispatch_once_t pred;2 static SingleObject *sharedObject = nil;3 4 dispatch_once...
分类:
移动开发 时间:
2015-03-12 20:35:04
阅读次数:
136
1 static DemoObj *instance; 2 3 /** 4 1. 重写allocWithZone,用dispatch_once实例化一个静态变量 5 2. 写一个+sharedXXX方便其他类调用 6 */ 7 8 // 在iOS中,所有对象的内存空间的分配,最终都会调用...
分类:
移动开发 时间:
2015-03-10 06:45:47
阅读次数:
146
使用GCD处理多线程,在多核心CPU下,会提高执行效率,下面是一段在项目中使用的GCD代码。- (void)gcdDownload { static dispatch_once_t once; static dispatch_queue_t queue; //crea...
分类:
移动开发 时间:
2015-03-06 15:29:57
阅读次数:
148
无论是爱还是恨,你都需要单例。 什么是单例呢?Wikipedia是如此定义的: 在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。 或者我的理解是: 单例就是类,但是该类只能实例化出一个对象。 尽管这是单例的实际定义,但在Foundation框架...
分类:
其他好文 时间:
2015-03-01 16:55:31
阅读次数:
136
+ (SingletonObject *)shareInstance;+ (SingletonObject *)shareInstance { static SingletonObject *__singletion; static dispatch_once_t onceToken; ...
分类:
移动开发 时间:
2015-02-26 21:31:57
阅读次数:
143
/** 登录后用户信息实体* 单例*/+(TCMember *)sharedMember{ static TCMember* shareInstance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ shareIns....
分类:
其他好文 时间:
2015-01-30 10:25:07
阅读次数:
179
单例是开发中使用最常见的一种设计模式,无论创建多少个对象,都返回同一个实例,共享一块内存。OC创建单例,基本上就是定义一个类方法,在里面创建一个 对象,然后返回该对象,下次在创建的时候就会判断是否存在该对象,如果有直接返回,没有则重新创建,当然这个对象是保存在全局静态区的。苹果引入了 GCD,代码....
分类:
其他好文 时间:
2015-01-13 19:47:50
阅读次数:
113
无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication.什么是单例呢?Wikipedia是如此定义的:在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。或者我的理解是:单例是一种类,该类...
分类:
其他好文 时间:
2015-01-11 21:38:01
阅读次数:
304
使用GCD的dispatch_once创建单例介绍了创建单例的方式,不过后来发现其实在ios 4.0后有更加简单的方式。就是使用GCD的功能代码如下:+ (instantClass *)sharedClient {staticinstantClass *_sharedClient =nil;stat...
分类:
其他好文 时间:
2015-01-09 10:38:52
阅读次数:
100
关键字:GCD dispatch_once 单例 线程安全 double-check 以前在Java、C#等语言中,我们实现迟缓加载的单例模式一般写成如下形式(伪代码):private MyClass() {...} // 私有化构造方法private static MyClass instanc....
分类:
移动开发 时间:
2014-12-31 08:42:17
阅读次数:
226