Swift 游戏结束倒计时 + 1 小时
Swift Countdown from game end + 1 hour
我正在尝试在游戏之间创建一个计时器,以便用户在失去生命后必须等待 5 分钟才能再次玩游戏。但是我不确定最好的方法是什么。
我还需要它来防止用户只是在“设置”中编辑他们的时间。
实现此目标的最佳方法是什么?
目前我正在经历在钥匙串中设置 NSDate() 对象的过程:
let date = NSDate()
然后使用它来获取值:
let date = gameActions["EndFight"] as! NSDate
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
let Hour = components.hour
let Minute = components.minute
print("Hour: \(Hour)")
print("Mins: \(Minute)")
但是小时总是returns为1。环顾四周之后,我突然想到我可能会以完全错误的方式来解决这个问题。
然后我打算反转这个 Swift Timer 教程来倒计时..
这是正确的轨道吗?
需要澄清的主要问题:
我如何确定自上次比赛开始后是否已过去 5 分钟?
执行此操作的正确方法是在您的后端使用 UTC 0 的时间戳。您无法防止用户更改其 phone 上的时间,因此不要依赖那里的任何时间戳。
如果您想阻止用户在 x 时间内访问某项功能,请在后端记录他们的 activity。
然后比较两个日期,试试这个:
let calendar = NSCalendar.currentCalendar()
let dateComponenets = calendar.components(NSCalendarUnit.Minute, fromDate: serverActivityLogDate, toDate: serverCurrentDate, options: [])
let minutes = dateComponenets.minute
我正在尝试在游戏之间创建一个计时器,以便用户在失去生命后必须等待 5 分钟才能再次玩游戏。但是我不确定最好的方法是什么。
我还需要它来防止用户只是在“设置”中编辑他们的时间。
实现此目标的最佳方法是什么?
目前我正在经历在钥匙串中设置 NSDate() 对象的过程:
let date = NSDate()
然后使用它来获取值:
let date = gameActions["EndFight"] as! NSDate
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
let Hour = components.hour
let Minute = components.minute
print("Hour: \(Hour)")
print("Mins: \(Minute)")
但是小时总是returns为1。环顾四周之后,我突然想到我可能会以完全错误的方式来解决这个问题。
然后我打算反转这个 Swift Timer 教程来倒计时..
这是正确的轨道吗?
需要澄清的主要问题:
我如何确定自上次比赛开始后是否已过去 5 分钟?
执行此操作的正确方法是在您的后端使用 UTC 0 的时间戳。您无法防止用户更改其 phone 上的时间,因此不要依赖那里的任何时间戳。
如果您想阻止用户在 x 时间内访问某项功能,请在后端记录他们的 activity。
然后比较两个日期,试试这个:
let calendar = NSCalendar.currentCalendar()
let dateComponenets = calendar.components(NSCalendarUnit.Minute, fromDate: serverActivityLogDate, toDate: serverCurrentDate, options: [])
let minutes = dateComponenets.minute