update pod

This commit is contained in:
DDIsFriend
2023-09-15 19:03:10 +08:00
parent f0c63d8c58
commit 4b5e345397
4 changed files with 46 additions and 32 deletions

View File

@@ -13,8 +13,10 @@ open class GCDTimer {
private var timerSources : [GCDTimerAbstract] = []
public var canceledCompletionHandler:(() -> Void)? //
private var canceledCompletionHandler:(() -> Void)? //
private var removeQueue = DispatchQueue(label: "GCDTimerRemoveQueue") // timerSourcesGCDTimerAbstract
///
/// - Parameters:
/// - named:
@@ -37,22 +39,24 @@ open class GCDTimer {
repeatHandler()
} cancelHandler: {[weak self] timerName in
//
self?.removeGCDTimer(named: timerName)
//
if let cancelHandler {
cancelHandler()
}
//
if let canceledCompletionHandler = self?.canceledCompletionHandler {
canceledCompletionHandler()
}
self?.removeGCDTimer(named: timerName,removeComletionHandler: {[weak self] in
//
if let cancelHandler {
cancelHandler()
}
//
if let canceledCompletionHandler = self?.canceledCompletionHandler {
canceledCompletionHandler()
}
})
} completionHandler: {[weak self] timerName in
//
self?.removeGCDTimer(named: timerName)
//
if let completionHandler {
completionHandler()
}
self?.removeGCDTimer(named: timerName,removeComletionHandler: {
//
if let completionHandler {
completionHandler()
}
})
}
timerSources.append(gcdTimerA)
@@ -67,14 +71,19 @@ open class GCDTimer {
/// - timerName:
/// - canceledCompletionHandler:
public func cancelGCDTimer(named timerName:String,canceledCompletionHandler:(() -> Void)? = nil) {
self.canceledCompletionHandler = canceledCompletionHandler
// timerSources
if let gcdTimerA = timerSources.first(where: { gcdTimerA in
gcdTimerA.timerName == timerName
}) {
self.canceledCompletionHandler = canceledCompletionHandler
gcdTimerA.cancelGCDTimer(isCanceledManually: true)
}else{
DDLog(message: "定时器\'\(timerName)\'取消失败,未包含")
if let canceledCompletionHandler {
canceledCompletionHandler()
}
//
logTimerName()
}
}
@@ -87,20 +96,27 @@ open class GCDTimer {
return false
}
func removeGCDTimer(named timerName:String) {
//
timerSources.removeAll { gcdTimerA in
gcdTimerA.timerName == timerName
func removeGCDTimer(named timerName:String,removeComletionHandler:@escaping () -> Void) {
removeQueue.sync {[weak self] in
//
if let index = self?.timerSources.firstIndex(where: { gcdTimerA in
gcdTimerA.timerName == timerName
}) {
self?.timerSources.remove(at: index)
DDLog(message: "定时器\'\(timerName)\'移除成功")
}
//
self?.logTimerName()
}
DDLog(message: "定时器\'\(timerName)\'移除成功")
//
logTimerName()
}
func logTimerName() {
var array : [String] = []
for gcdTimerA in timerSources {
DDLog(message:("剩余定时器:\'\( gcdTimerA.timerName)\'"))
array.append(gcdTimerA.timerName)
}
DDLog(message:("剩余定时器:\'\(array)\'"))
array.removeAll()
}
}
@@ -137,8 +153,6 @@ class GCDTimerAbstract {
if let cancelHandler,let timerName = self?.timerName {
cancelHandler(timerName)
}
// ,
}else{
//
if let completionHandler,let timerName = self?.timerName {