对于我的应用程序,我需要确定日期是否相对于您上次打开该应用程序的时间发生了变化。因此,我使您可以在下面看到。问题是:由于任何原因它都不起作用。我的应用连续计算您使用过的天数,因此如果天数发生变化,它将在天数计数器中增加一。

这是我的傻瓜:

var dateChanged: Bool
{
    let dateNow = Date()
    var oldDate = defaults.object(forKey: "oldDate2") as? Date

    if dateNow != oldDate
    {
        return true
    }
    else
    {
        return false
    }

    oldDate = newDate
    defaults.set(oldDate, forKey: "oldDate")
    defaults.synchronize()

}

我该如何改善该布尔值?在oldDate = newDate处说:“永远不会执行。”你能帮助我吗?

感谢您的浏览!

最佳答案

您需要使用Calendar方法 isDateInToday 来检查日期是今天的日期。同样,您需要在从函数返回值之前放入代码。

if !Calendar.current.isDateInToday(oldDate) {
    defaults.set(Date(), forKey: "oldDate")
    return true
}
return false

09-10 21:31