黑马程序员技术交流社区
标题:
单例模式的解析
[打印本页]
作者:
夜空守望者
时间:
2015-9-5 09:57
标题:
单例模式的解析
(1) 某个类只能有一个实例。
(2)他必须自行创建这个对象
(3)必须自行向整个系统提供这个实例;
(4)为了保证实例的唯一性,我们必须将 -(id)copyWithZone:(NSZone *)zone 、+(id)allocWithZone:(NSZone *)zone、 -(id)retain、 -(NSUInteger)retainCount 、-(oneway void)release
、-(id)autorelease 的实现方法进行覆盖。(具体实现请看程序)
(5)这个方法必须是一个静态类
GCD 创建单例
+(id)sharedManager {
static MyManager*sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
非-GCD 代码
+ (id)sharedManager {
@synchronized(self) {
if (sharedMyManager == nil)
sharedMyManager = [[self alloc] init];
}
returnsharedMyManager;
}
复制代码
常见问题详见:
<http://blog.sina.com.cn/s/blog_797bb4bf01015t7u.html>
<http://blog.csdn.net/jiangwei0910410003/article/details/41928053>
作者:
七爷上课前
时间:
2015-9-5 19:57
厉害,都看到了基础视频的最后了,
作者:
huilly
时间:
2015-9-5 20:23
支持一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2