单例创建方式
//第一种 最常用的创建方式 一般使用share..../defult....
static StudentDataHanle * stu = nil;
+(StudentDataHandle *)shareDatahandle
{
if(!stu){
stu =[[StudentDataHandle alloc] init];
}
return stu;
}
//第二种
+ (Sun *)defultSun
{
@synchronized(self) //互斥锁, 多线程开发 同时进行时,防止数据混乱
{
if(!s){
s = [[Sun alloc] init];
}
return s;
}
}
//第三种
+ (Sun *)defultSun{
//用GDC 创建单例 优点:效率高, 自动加把锁
static dispatch_once_t onceToken; //给下面传的是地址,block只会执行一次 //先打下一句,自动出来
dispatch_once(&onceToken, ^{
s = [[Sun alloc] init];
});
return s;
}