我试图为用户单击按钮添加一个计时器,它将在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/