//第一种;(单线程)
+ (id)sharePen{
static Pen *pen = nil;
if (pen == nil) {
pen = [[Pen alloc] init];
}
return pen;
}
//另外一种;
+ (id)sharePen{
static Pen *pen = nil;
@synchronized(self)
{
if (pen == nil)
{
pen = [[Pen alloc] init];
}
}
return pen;
}
//第3种;(和另外一种的差别在于有提示)
+ (id)sharePen{
static Pen *pen = nil;
//保证里面的方法仅仅运行一次
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
pen = [[Pen alloc] init];
});
return pen;
}
posted @
2014-11-06 17:27
mfrbuaa
阅读(
102)
评论()
编辑
收藏
举报