//第一种;(单线程)
+ (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;
}
iOS 单例
原文:http://blog.csdn.net/huhuahua6/article/details/39377019