iOS必须SwiftiOS开发资料收集区

Swift - 间隔时间操作 ①

2016-11-27  本文已影响77人  小黑Swift

有时候我们想对某些事件在某些时间段内进行重复操作,可通过判断上次操作的时间与当前时间间隔...

突然间想到很多东西可以通过时间纬度来诞生新的解决方案

class TimeControlCenter {
    
    static let gm = TimeControlCenter()
    
    var pastTimesDict:[String:Int] = [:]

    /// 判断是否满足间隔操作
    ///
    /// - Parameters:
    ///     - keyName: 当前操作名字
    ///     - s: 间隔秒数
    /// - Returns: true 可操作  false 未到时间
    func afterTimes(keyName:String,s:Int) -> Bool {
        
        let now = NSDate()
        let timeInterval:NSTimeInterval = now.timeIntervalSince1970
        let timeStamp = Int(timeInterval)

        if let pastTime = pastTimesDict[keyName] {
            if timeStamp - pastTime > s {
                pastTimesDict[keyName] = timeStamp
                return true
            } else {
                return false
            }
        } else {
            pastTimesDict[keyName] = timeStamp
            return true
        }
    }
}

使用:

if TimeControlCenter.gm.afterTimes("Aciton1", s: 10) {
    print("Aciton1 执行")
}
上一篇下一篇

猜你喜欢

热点阅读