单例的3种写法

来源:互联网 发布:mac装双系统的利弊 编辑:程序博客网 时间:2024/05/29 07:54

第一种:

{
     static Sun * sun = nil;
     if(sun == nil){
         sun = [[Sun alloc] init];
     }
     return sun;
}

第二种:
{
     static Sun * sun = nil;
     static dispatch_once  onceToken = nil;
     dispatch_once_t(&&onceToken, ^[
          sun =[[Sun alloc] init];          
          ]);
}

第三种:
{
     static Sun * sun = nil;
     @synchronized(self){
          if(sun == nil){
              sun = [[Sun alloc] init];
          }
     }
     return sun;
}


0 0
原创粉丝点击