我试图为用户单击按钮添加一个计时器,它将在24小时内启动计时器,并在接下来的24小时内禁用该按钮。之后,再次启用它。对于类似的事情,这里有一些答案,但对于在SWIFT中做到这一点并非100%有用。

我遇到的主要问题是我希望这是针对每个用户的。因此,该用户的每次点击都需要24小时。因此,例如:如果我“喜欢”某件东西,那么您希望能够在24小时内再次“喜欢”该特定东西,但仍然可以“喜欢”另一件东西?

谢谢

最佳答案

您可以通过设置实际日期+ 1 day并将其保存到NSUserDefaults中来实现。

因此,在按按钮的方法中,您可以执行以下操作:

//user pressed button:
func buttonPressed(){
    //current date
    let currentDate = NSDate()
    let calendar = NSCalendar.currentCalendar()

    //add 1 day to the date:
    let newDate = calendar.dateByAddingUnit(NSCalendarUnit.CalendarUnitDay, value: 1, toDate: currentDate, options: NSCalendarOptions.allZeros)

    NSUserDefaults.standardUserDefaults().setValue(newDate, forKey: "waitingDate")

    //disable the button
}

并检查时间,您可以检索信息。我建议在AppDelegate之类的applicationDidFinishLaunchingWithOptions方法中检查它。
//call it whereever you want to check if the time is over
if let waitingDate:NSDate = NSUserDefaults.standardUserDefaults().valueForKey("waitingDate") as? NSDate{
    let currentDate = NSDate()
    //If currentDate is after the set date
    if(currentDate.compare(waitingDate) == NSComparisonResult.OrderedDescending){
        //reenable button
    }
}

关于ios - 使用NSUserDefaults在SWIFT中添加24小时倒数计时器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28571194/

10-08 21:45