有时候我们想对某些事件在某些时间段内进行重复操作,可通过判断上次操作的时间与当前时间间隔...
突然间想到很多东西可以通过时间纬度来诞生新的解决方案
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 执行")
}