У меня есть следующий протокол, который определяет синглтон со свойством:
protocol SingletonProtocol {
static var shared: SingletonProtocol { get }
var variable : Int { get set }
}
И следующий класс, который реализует этот протокол:
class Singleton : SingletonProtocol{
static let shared : SingletonProtocol = Singleton()
var variable = 4
}
Если я вызываю:
Singleton.shared.variable = 5
Я получаю следующую ошибку:
change 'let' to 'var' to make it mutable
Если я реализую этот класс без протокола, я не получу ошибку, и переменная может быть изменена.Я могу решить эту проблему, добавив setVariable:
метод, но я хочу получить доступ и изменить переменную напрямую.
Как мне написать протокол, который определяет синглтон с переменными, которые могут быть изменены?