我希望代碼每天運行一次,但我想要完成此操作的方式是在單擊該按鈕後禁用該按鈕,然後在超過24小時後重新啓用該按鈕。如何保存用戶快速按下按鈕的日期?
下面的代碼是否正確,以保存用戶按下按鈕的日期?
if distance < radius{
Total_Points += 10
pointsLabel.text = "Total Points: \(Total_Points)"
getPointsOutlet.isEnabled = false
let clickdate = UserDefaults.standard
if var timeList = clickdate.object(forKey: "timeList") as? [Date]{
timeList.append(Date())
clickdate.set(timeList, forKey: "timeList")
} else {
clickdate.set([Date()], forKey: "timeList")
}
clickdate.synchronize()
}
let PointsDefault = UserDefaults.standard
PointsDefault.setValue(Total_Points, forKey: "Total Points")
每次調用UserDefaults.standard時都不需要創建新變量,您可以按原樣使用它(例如'UserDefaults.standard.setValue(...)'或定義它一次並重用它(例如'let defaults = UserDefaults.standard'和更高版本'defaults.setValue(...)' – Paolo
謝謝,我會改變這種情況,但保存用戶按下按鈕的日期又如何呢? –