@@ -29,7 +29,7 @@ public struct SDImageURLProvider: SDImageProviding {
2929 }
3030
3131 guard let data = data else {
32- log ( level: . error( " Could not load Image for URL ( \( url) ). Response: \( String ( describing: response) ) . " , nil ) )
32+ log ( level: . error( " (SDImageURLProvider) Could not load Image for URL (\( url) ). Response: \( String ( describing: response) ) . " , nil ) )
3333 promise ( . success( nil ) )
3434 return
3535 }
@@ -42,17 +42,19 @@ public struct SDImageURLProvider: SDImageProviding {
4242 }
4343}
4444
45- public struct SDImageUserDefaultsProvider : SDImageProviding {
45+ public struct SDImageFileProvider : SDImageProviding {
4646 public init ( ) { }
4747
4848 public func image( forURL url: URL ) -> AnyPublisher < UIImage ? , Error > {
4949 Future { promise in
50- let imageData : Data ? = UserDefaults . standard. data (
51- forKey: url. absoluteString
52- )
50+ let key = url. absoluteString. replacingOccurrences ( of: " / " , with: " - " )
51+ let path = FileManager . default. urls (
52+ for: . documentDirectory,
53+ in: . userDomainMask
54+ ) [ 0 ] . appendingPathComponent ( key)
5355
54- guard let data = imageData else {
55- log ( level: . error( " Could not load Image for URL ( \( url ) ). " , nil ) )
56+ guard let data = try ? Data ( contentsOf : path ) else {
57+ log ( level: . error( " (SDImageFileProvider) Could not load Image from path (\( path . absoluteString ) ). " , nil ) )
5658 promise ( . success( nil ) )
5759 return
5860 }
@@ -63,11 +65,11 @@ public struct SDImageUserDefaultsProvider: SDImageProviding {
6365 }
6466}
6567
66- public struct SDImageURLUserDefaultsProvider : SDImageProviding {
68+ public struct SDImageURLFileProvider : SDImageProviding {
6769 public init ( ) { }
6870
6971 public func image( forURL url: URL ) -> AnyPublisher < UIImage ? , Error > {
70- SDImageUserDefaultsProvider ( )
72+ SDImageFileProvider ( )
7173 . image ( forURL: url)
7274 . flatMap { image -> AnyPublisher < UIImage ? , Error > in
7375 guard let image = image else {
0 commit comments