コードを1日に1回実行したいのですが、これを達成する方法は、クリックした後にボタンを無効にしてから、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
ありがとう、私はそれを変更しますが、ユーザーがボタンを押した日付はどうでしょうか? –