`CacheKeyProvider` updated

This commit is contained in:
Vladimir Makarov 2023-03-10 14:13:37 +01:00
parent 4c973b393d
commit 23b74ec3d5
2 changed files with 5 additions and 5 deletions

View File

@ -23,7 +23,7 @@
import UIKit.UIImage
open class DefaultCachableMarkerIconFactory<M, K: AnyObject>: DefaultMarkerIconFactory<M> {
public typealias CacheKeyProvider = (M) -> K
public typealias CacheKeyProvider = (M, MarkerState) -> K
public let cache = NSCache<K, UIImage>()
@ -38,10 +38,10 @@ open class DefaultCachableMarkerIconFactory<M, K: AnyObject>: DefaultMarkerIconF
}
open override func markerIcon(for model: M, state: MarkerState) -> UIImage {
let cacheKey = cacheKeyProvider(model)
let cacheKey = cacheKeyProvider(model, state)
guard let cachedIcon = cache.object(forKey: cacheKey) else {
let icon = super.markerIcon(for: model, state: .default)
let icon = super.markerIcon(for: model, state: state)
cache.setObject(icon, forKey: cacheKey)
return icon

View File

@ -36,8 +36,8 @@ public final class DefaultClusterMarkerIconFactory<Model>: DefaultCachableMarker
beforeRenderCallback?(models, clusterIconRenderer)
return clusterIconRenderer.renderCluster(of: models.count)
} cacheKeyProvider: {
String($0.count) as NSString
} cacheKeyProvider: { models, _ in
String(models.count) as NSString
}
}
}