写一个计时器
简单计时器
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(aaaa), userInfo: nil, repeats: true)
//在外部
@objc func aaaa (){
print("1111")
}
封装一个计时器
aaaa(forInterval: 0.5) {[weak self] a, b in
print("\(a) \(b)")
}
//在外部
//调用者要实现的闭包,也是每次执行计时要走的逻辑
public typealias Abc = (_ a: Int,_ b: Int) -> Void
//封装的计时器
func aaaa(forInterval interval: TimeInterval,
using block: @escaping Abc) -> Timer {
return Timer.scheduledTimer(
timeInterval: interval, target: self,
selector: #selector(self.bbbb(timer:)),
userInfo: block, repeats: true
)
}
//能调用自己定义闭包的核心逻辑
@objc func bbbb(timer: Timer) {
if let block = timer.userInfo as? Abc {
DispatchQueue.main.async {
block(1,2)
}
}
}