From 23b74ec3d5e77e1453fe173a177d7bdf5bd817cf Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Fri, 10 Mar 2023 14:13:37 +0100 Subject: [PATCH] `CacheKeyProvider` updated --- .../IconProviders/DefaultCachableMarkerIconFactory.swift | 6 +++--- .../IconProviders/DefaultClusterMarkerIconFactory.swift | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/TIMapUtils/Sources/IconProviders/DefaultCachableMarkerIconFactory.swift b/TIMapUtils/Sources/IconProviders/DefaultCachableMarkerIconFactory.swift index 9ad5fdbc..b29381d8 100644 --- a/TIMapUtils/Sources/IconProviders/DefaultCachableMarkerIconFactory.swift +++ b/TIMapUtils/Sources/IconProviders/DefaultCachableMarkerIconFactory.swift @@ -23,7 +23,7 @@ import UIKit.UIImage open class DefaultCachableMarkerIconFactory: DefaultMarkerIconFactory { - public typealias CacheKeyProvider = (M) -> K + public typealias CacheKeyProvider = (M, MarkerState) -> K public let cache = NSCache() @@ -38,10 +38,10 @@ open class DefaultCachableMarkerIconFactory: 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 diff --git a/TIMapUtils/Sources/IconProviders/DefaultClusterMarkerIconFactory.swift b/TIMapUtils/Sources/IconProviders/DefaultClusterMarkerIconFactory.swift index eccfdca6..04e800dc 100644 --- a/TIMapUtils/Sources/IconProviders/DefaultClusterMarkerIconFactory.swift +++ b/TIMapUtils/Sources/IconProviders/DefaultClusterMarkerIconFactory.swift @@ -36,8 +36,8 @@ public final class DefaultClusterMarkerIconFactory: DefaultCachableMarker beforeRenderCallback?(models, clusterIconRenderer) return clusterIconRenderer.renderCluster(of: models.count) - } cacheKeyProvider: { - String($0.count) as NSString + } cacheKeyProvider: { models, _ in + String(models.count) as NSString } } }