`CacheKeyProvider` updated
This commit is contained in:
parent
4c973b393d
commit
23b74ec3d5
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue