-2

我正在制作一个 FlashCards 应用程序,我想为卡片设置一个计时器,以便如果用户知道答案,卡片将在第二天再次触发,然后如果他再次知道,它将在 5 内触发天等等。我没有找到与此相关的任何东西,有什么帮助吗?

4

2 回答 2

0

如果用户不退出应用程序,您可以使用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)
}

通常,您需要为特定日期准备特定数据源。例如,在您的情况下,您可以为每张卡片添加一个标志或日期,并使用该标志或日期将该卡添加到特定日期的数据源。

于 2021-03-08T10:43:23.523 回答
0

使用每张卡跟踪日期和用户的表现。(您可以在这里使用计时器。例如,如果用户在一分钟内“知道”答案,则卡片将被标记为“正确”(已知),超过该时间,卡片将被标记为“错误” (尚未掌握,需要重复)。
创建一个逻辑,其中标记为“错误”的卡片将在几天左右后弹出。我建议您使用 CoreData 来保存Dates用户使用 Flashcard 应用程序的时间。
另外,您将需要学习如何使用DateComponents()。这是一个很好的资源

于 2021-03-08T10:57:18.340 回答