Swift 3:找出日期是否已更改 - 如何更改?

Wha*_*zup 3 iphone date ios swift3

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

这是我的布尔:

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()

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能改进那个布尔值?在oldDate = newDate它说:“永远不会被执行。”。你能帮助我吗?

感谢您的观看!

Nir*_*v D 6

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

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