每24小时重置一次用户投票 - 斯威夫特

时间:2015-07-16 09:17:07

标签: swift time

在我的应用程序中,用户可以每24小时对一个他们喜欢的特定赛车课程进行投票。然而,在他们投票后的每24小时,我希望他们能够再次投票。

我理解NSTimer的基础知识 - 我是否希望创建一个关闭应用程序的日志,以及他们何时再次打开并记录时间并计算是否已经24小时的日志?

1 个答案:

答案 0 :(得分:0)

这是一个简单方法的示例,但如果您想确定用户无法再24小时投票,您将需要使用更高级的机制(存储在钥匙串中,从中获取当前日期)而你的服务器......)。

//Save for example vote date to user defaults
NSUserDefaults.standardUserDefaults().setObject(voteDate, forKey: "voteDate")


//Load saved date next time user wants to vote and check time passed
var canVoteNow = false
if let savedDate = NSUserDefaults.standardUserDefaults().objectForKey("voteDate") as? NSDate {
    let calendar = NSCalendar.currentCalendar()
    let dateNow = NSDate()
    let dateComponents = calendar.components(NSCalendarUnit.CalendarUnitHour, fromDate: savedDate, toDate: dateNow, options: nil)
    let hoursPassed = components.hour
    canVoteNow = hoursPassed >= 24
}