Skip to content

Commit 9b8c19d

Browse files
committed
Protect the runtime hack for user who use before SDWebImage 5.6.0
1 parent 96a2832 commit 9b8c19d

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

SDWebImageSwiftUI/Classes/ImageManager.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,13 @@ public final class ImageManager : ObservableObject {
120120
let transformer = (context?[.imageTransformer] as? SDImageTransformer) ?? manager.transformer
121121
context?[.imageTransformer] = nil
122122
// TODO: before SDWebImage 5.7.0, this is the SPI. Remove later
123-
var key = manager.perform(Selector(("cacheKeyForURL:context:")), with: url, with: context)?.takeUnretainedValue() as? String
123+
var key: String?
124+
let selector = Selector(("cacheKeyForURL:context:"))
125+
if manager.responds(to: selector) {
126+
key = manager.perform(selector, with: url, with: context)?.takeUnretainedValue() as? String
127+
} else {
128+
key = manager.cacheKey(for: url)
129+
}
124130
if let transformer = transformer {
125131
key = SDTransformedKeyForKey(key, transformer.transformerKey)
126132
}

0 commit comments

Comments
 (0)