2015-02-07 1 views
0

어떻게 신속하게 다음을 작성 하시겠습니까?공유 인스턴스가 신속하게

static ClassName* singleCommon = nil; 
+ (ClassName*)sharedInstance { 
    @synchronized(singleCommon) { 
     if(!singleCommon) singleCommon = [[ClassName alloc] init]; 
    } 
    return singleCommon; 
} 

답변

1

좋은 솔루션입니다 :

class Singleton { 
    class var sharedInstance: Singleton { 
     struct Static { 
      static var instance: Singleton? 
      static var token: dispatch_once_t = 0 
     } 

     dispatch_once(&Static.token) { 
      Static.instance = Singleton() 
     } 

     return Static.instance! 
    } 
} 

솔루션 여기

private let _sharedInstance = SomeClass() 

class SomeClass: NSObject { 

    class var sharedInstance: SomeClass { 
     get { 
      return _sharedInstance 
     } 
    } 

} 

은 블로그 게시물이 질문을 논의하고있다 그리고 설명은 : http://code.martinrue.com

1
나는 일반적으로 다음과 같이 스위프트에 sharedInstance를 사용

: http://thatthinginswift.com/singletons/

+0

'_sharedInstance'가 클래스를 벗어났습니다. 문제가 해결되면 다른 구현과 충돌 할 수 있습니다. – ViTUu

관련 문제