Вы можете использовать @propertyWrapper
структуру для удобного доступа к UserDefaults
.
@propertyWrapper struct DefaultsStorable<T> {
private let defaultValue: T
private let defaults: UserDefaults
private let key: String
init(key: String, defaults: UserDefaults = .standard, defaultValue: T) {
self.key = key
self.defaults = defaults
self.defaultValue = defaultValue
}
var wrappedValue: T {
get {
defaults.value(forKey: key) as? T ?? defaultValue
}
set {
defaults.set(newValue, forKey: key)
}
}
}
, а затем использовать это так:
@DefaultsStorable(key: "numberOfButtonClicks", defaultValue: 0) var buttonClicks: Int
Затем вы можете просто увеличить значение в любое время нажата кнопка