2016-03-05 81 views
0

訪問我有一個單例類:確保單屬性不是通過其他實例

final class NotificationSingleton : NSObject { 
    static let sharedInstance = NotificationSingleton() 
    var aProperty: String! 
    var anotherProperty: Int! 
} 

我怎樣才能確保aPropertyanotherProperty只能通過sharedInstance訪問?

回答

1

可以使初始化私人 因此沒有其他實例可以被創建

private override init() {} 
+0

這怎麼能在目標c中實現? –

+0

我不知道這一點 –

0

你可以使用failable初始化,以防止更多NotificationSingleton實例的創建,一旦你sharedInstance已設置。

我懷疑這種防禦性編程實際上會讓其他開發人員在將來使用這種類型的惡意程序,難以測試,並且可能有一個更簡潔的解決方案,它不依賴單例作爲全局變量,但是在那裏你走。

相關問題