【发布时间】:2020-06-05 15:19:28
【问题描述】:
如何知道按钮被按下了多少次,或者即使我们关闭应用程序,如何在 Swift 中跟踪函数调用,我有一个按钮,当你按下它时会显示一个提醒我希望我的应用程序记住按钮是否被按下按下了不止一次,我不想显示任何东西,我需要数据库吗?
【问题讨论】:
-
您可以使用 UserDefaults 在应用会话之间保存该数据。
如何知道按钮被按下了多少次,或者即使我们关闭应用程序,如何在 Swift 中跟踪函数调用,我有一个按钮,当你按下它时会显示一个提醒我希望我的应用程序记住按钮是否被按下按下了不止一次,我不想显示任何东西,我需要数据库吗?
【问题讨论】:
您可以使用用户默认值来了解按钮之前是否被按下
UserDefaults.standard.set(true, forKey: "Key") //setting value
UserDefaults.standard.bool(forKey: "Key"). //getting value
【讨论】:
按下button时将计数保存在UserDefaults中。
@IBAction func buttonPressed(_ sender: UIButton) {
var count = UserDefaults.standard.integer(forKey: "buttonPressedCount")
count += 1
print(count)
UserDefaults.standard.set(count, forKey: "buttonPressedCount")
}
【讨论】:
您可以使用@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
然后,您可以在按下按钮的任何时候增加值
【讨论】: