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 执行")
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容