2016-08-25 42 views
0
class ShareData { 
    class var sharedInstance: ShareData { 
     struct Static { 
      static var instance: ShareData? 
      static var token: dispatch_once_t = 0 
     } 

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

     return Static.instance! 
    } 


    var someString : String! //Some String 

    var selectedTheme : AnyObject! //Some Object 

    var someBoolValue : Bool! 

} 

這是我的單例設計。但是,我想知道如何在需要時清除所有數據? 也可以有多個單身類?iOS快速單例清除數據

+1

單身設計模式意味着您可以在應用中只有一個特定類的實例 – ddb

+0

請參閱http://stackoverflow.com/questions/24024549/using-a-dispatch-once-singleton-model-in-swift Swift中共享實例的「現代」定義。 –

回答

2

既然你在你的單身人士只有3個屬性,那麼只需要設置一個方法來依次刪除每個屬性就簡單多了。

一旦開始接觸如何摧毀並重新創建你的單身人士,你會進入一個領域,你甚至想要一個單身人士還是應該使用一個普通物體。

1

您正在創建一個Singleton在現有的語法... 2014

今天有更好的語法來定義一個Singleton類

final class SharedData { 

    static let sharedInstance = SharedData() 
    private init() { } 
    var someString: String? 
    var selectedTheme: AnyObject? 
    var someBoolValue: Bool? 

    func clear() { 
     someString = nil 
     selectedTheme = nil 
     someBoolValue = nil 
    } 
} 

正如你可以看到我還添加了clearData()方法你正在尋找。

+0

雖然我推薦了你的解決方案,但如果你有一個var實例作爲屬性,那麼只需將其設置爲nil,而不是將類中的每個變量都設置爲nil即可。如https://stackoverflow.com/a/28398928/4693042 –