2014-12-17 4 views
0

나는 안드로이드 애플 리케이션 개발자이며 신속한 초보자입니다. 데이터 멤버가 설정 (예 : 설정)에서 공유되는 싱글 톤 클래스를 구현하려고합니다. Android에서이 작업을 수행하는 것은 매우 간단하지만 신속하게 처리 할 수 ​​있도록 내 머리를 아프게합니다. 다음은 데이터 공유를위한 싱글 톤 클래스

내가 해봤 코드입니다 ..

public class DataSet 
{ 
    public var notificationOnOff: Bool! 
    public var interval: Int! 
    public var alert: String! 

    init() 
    { 
     self.notificationOnOff = true 
     self.interval = 1; 
     self.alert = nil; 
    } 

    init (onOff: Bool) { 
     self.notificationOnOff = onOff 
    } 

    init (time: Int) { 
     self.interval = time 
    } 

    init (stop: String) { 
     self.alert = stop 
    } 
} 

이 클래스의 구현은 데이터를 유지 할 수 없었다. 올바른 방법인가요? 내가 설정에서 스위치를 클릭

예를 들어 편집

는 ..

dataset.notificationOnOff = DataSet(onOff: true) // value is set and able to print it 

와 같은 다른 클래스에서이 값을 사용하여 ...

내가 좋아하는 notificationOnOff 설정하고있어, 컨트롤러를보기

기본적으로이 값은 Setting 클래스에서만 유지되지만 다른 클래스로 전환 할 때는 유지되지 않습니다.

+1

참고 : 1 - HTTP : //stackoverflow.com/questions를/24024549/dispatch-once-singleton-model-in-swift 2 - http : //code.martinrue.com/posts/the-singleton-pattern-in-swift – Mrunal

+0

클래스 대신 구조체를 사용하려고 했습니까? –

+0

@Mrunal 예 이전에 확인했습니다. 나는 그 구현을 이해하지 못했습니다. 그는'static var instance : Singleton? '을 사용했지만 클래스의 int 또는 string 데이터 멤버를 사용하여 값을 공유하는 방법은 무엇입니까? –

답변

0

해결!

나는 성공적으로 구현하기 위해 아래의 코드를 사용하고 있습니다 ..

var instance: DataSet? 
class Dataset { 
... 
    class var sharedInstance: DataSet { 
     struct Static { 
      static var instance: DataSet? 
      static var token: dispatch_once_t = 0 
     } 

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

     return Static.instance! 
    } 
} 

와 다른 클래스에서

..

dataset = Dataset.sharedInstance;