【问题标题】:Swift Countdown from game end + 1 hour游戏结束后的 Swift 倒计时 + 1 小时
【发布时间】:2016-04-19 14:57:47
【问题描述】:

我正在尝试在游戏之间创建一个计时器,以便在用户失去生命后,他们必须等待 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)")

但是 小时 总是返回 1。在环顾四周后,我突然想到我可能会以一种完全错误的方式去做。

然后我打算倒转这个Swift Timer 教程倒数倒计时..

这是正确的轨道吗?

需要澄清的主要问题:

我如何才能确定距离上一场比赛是否已经过去了 5 分钟?

【问题讨论】:

    标签: swift timer nsdate


    【解决方案1】:

    执行此操作的正确方法是在您的后端使用 UTC 0 的时间戳。您无法防止用户更改手机上的时间,因此不要依赖那里的任何时间戳。

    如果您想阻止用户在 x 段时间内访问某项功能,请在后端记录他们的活动。

    然后要比较两个日期,试试这个:

    let calendar = NSCalendar.currentCalendar()
    let dateComponenets = calendar.components(NSCalendarUnit.Minute, fromDate: serverActivityLogDate, toDate: serverCurrentDate, options: [])
    let minutes = dateComponenets.minute
    

    【讨论】:

    • 感谢您的回复。我确实收到了这个错误:类型 'NSCalendarUnit' 没有成员 'CalendarUnitSecond' - 你认为你可以帮忙吗?
    • 很抱歉。有点旧的代码。我已经更新了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多