如何为字符串设置定时器以定期触发?
How to set a timer for a string to trigger periodically?
我正在制作一个 FlashCards 应用程序,我想为卡片设置一个计时器,如果用户知道答案,卡片将在第二天再次触发,如果他再次知道答案,它将在 5 天后触发,依此类推。
我还没有找到与此相关的任何内容,有什么帮助吗?
如果用户不退出应用程序,您可以使用 Timer。但是,这只会在很短的时间内出现。
let minute = 60
let anotherTimeInterval = 2 * minute
var timer = Timer.scheduledTimer(timeInterval: minute, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: false)
@objc func updateTimer() {
// do something
timer.invalidate()
timer = Timer.scheduledTimer(timeInterval: anotherTimeInterval, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: false)
}
通常,您需要为特定的一天准备特定的数据源。例如,在您的情况下,您可以为每张卡片添加一个标志或日期,并使用该标志或日期将该卡片添加到特定日期的数据源。
跟踪日期和用户对每张卡片的表现。 (你可以在这里使用一个计时器。例如,如果用户 'knows' 在一分钟内回答,卡片将被标记为 'correct' (已知),超过该时间,卡片将被标记as 'wrong'(尚未掌握,需要重复)。
创建一个逻辑,其中标记为 'wrong' 的卡片将在几天左右后弹出。
我建议您在用户使用 Flashcard 应用程序时使用 CoreData 来保存 Dates
。
此外,您还需要学习如何使用 DateComponents()
。
这是一个很棒的 resource.
我正在制作一个 FlashCards 应用程序,我想为卡片设置一个计时器,如果用户知道答案,卡片将在第二天再次触发,如果他再次知道答案,它将在 5 天后触发,依此类推。 我还没有找到与此相关的任何内容,有什么帮助吗?
如果用户不退出应用程序,您可以使用 Timer。但是,这只会在很短的时间内出现。
let minute = 60
let anotherTimeInterval = 2 * minute
var timer = Timer.scheduledTimer(timeInterval: minute, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: false)
@objc func updateTimer() {
// do something
timer.invalidate()
timer = Timer.scheduledTimer(timeInterval: anotherTimeInterval, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: false)
}
通常,您需要为特定的一天准备特定的数据源。例如,在您的情况下,您可以为每张卡片添加一个标志或日期,并使用该标志或日期将该卡片添加到特定日期的数据源。
跟踪日期和用户对每张卡片的表现。 (你可以在这里使用一个计时器。例如,如果用户 'knows' 在一分钟内回答,卡片将被标记为 'correct' (已知),超过该时间,卡片将被标记as 'wrong'(尚未掌握,需要重复)。
创建一个逻辑,其中标记为 'wrong' 的卡片将在几天左右后弹出。
我建议您在用户使用 Flashcard 应用程序时使用 CoreData 来保存 Dates
。
此外,您还需要学习如何使用 DateComponents()
。
这是一个很棒的 resource.