Bläddra i källkod

Only cache to disk for using cache original option

onevcat 7 år sedan
förälder
incheckning
7940ebfcb5

+ 1 - 12
Demo/Demo/Kingfisher-tvOS-Demo/Base.lproj/Main.storyboard

@@ -67,18 +67,7 @@
                             <outlet property="delegate" destination="Oup-Jp-dod" id="jo9-Qc-n6o"/>
                             <outlet property="delegate" destination="Oup-Jp-dod" id="jo9-Qc-n6o"/>
                         </connections>
                         </connections>
                     </collectionView>
                     </collectionView>
-                    <navigationItem key="navigationItem" title="Title" id="73M-Nr-0wa">
-                        <barButtonItem key="leftBarButtonItem" title="Clear Cache" id="DS6-ds-fQK">
-                            <connections>
-                                <action selector="clearCacheWithSender:" destination="Oup-Jp-dod" id="uyH-e1-e6Z"/>
-                            </connections>
-                        </barButtonItem>
-                        <barButtonItem key="rightBarButtonItem" title="Reload" id="vsy-2H-Xfb">
-                            <connections>
-                                <action selector="reloadWithSender:" destination="Oup-Jp-dod" id="oWW-jb-DIw"/>
-                            </connections>
-                        </barButtonItem>
-                    </navigationItem>
+                    <navigationItem key="navigationItem" title="Title" id="73M-Nr-0wa"/>
                 </collectionViewController>
                 </collectionViewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="9sc-iK-DXi" userLabel="First Responder" sceneMemberID="firstResponder"/>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="9sc-iK-DXi" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
             </objects>

+ 2 - 14
Demo/Kingfisher-Demo.xcodeproj/project.pbxproj

@@ -13,7 +13,6 @@
 		277EAEA12045B52800547CD3 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 277EAE9E2045B52800547CD3 /* InterfaceController.swift */; };
 		277EAEA12045B52800547CD3 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 277EAE9E2045B52800547CD3 /* InterfaceController.swift */; };
 		277EAEA32045B52800547CD3 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 277EAEA02045B52800547CD3 /* ExtensionDelegate.swift */; };
 		277EAEA32045B52800547CD3 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 277EAEA02045B52800547CD3 /* ExtensionDelegate.swift */; };
 		4B1C7A3D21A256E300CE9D31 /* InfinityCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B1C7A3C21A256E300CE9D31 /* InfinityCollectionViewController.swift */; };
 		4B1C7A3D21A256E300CE9D31 /* InfinityCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B1C7A3C21A256E300CE9D31 /* InfinityCollectionViewController.swift */; };
-		4B1C7A3E21A256E300CE9D31 /* InfinityCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B1C7A3C21A256E300CE9D31 /* InfinityCollectionViewController.swift */; };
 		4B4307A51D87E6A700ED2DA9 /* loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4B7742461D87E42E0077024E /* loader.gif */; };
 		4B4307A51D87E6A700ED2DA9 /* loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4B7742461D87E42E0077024E /* loader.gif */; };
 		4B7742471D87E42E0077024E /* loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4B7742461D87E42E0077024E /* loader.gif */; };
 		4B7742471D87E42E0077024E /* loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4B7742461D87E42E0077024E /* loader.gif */; };
 		4B7742481D87E42E0077024E /* loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4B7742461D87E42E0077024E /* loader.gif */; };
 		4B7742481D87E42E0077024E /* loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4B7742461D87E42E0077024E /* loader.gif */; };
@@ -23,7 +22,6 @@
 		4BCCF3401D5B02F8003387C2 /* Cell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4BCCF33A1D5B02F8003387C2 /* Cell.xib */; };
 		4BCCF3401D5B02F8003387C2 /* Cell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4BCCF33A1D5B02F8003387C2 /* Cell.xib */; };
 		4BCCF3421D5B02F8003387C2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BCCF33C1D5B02F8003387C2 /* ViewController.swift */; };
 		4BCCF3421D5B02F8003387C2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BCCF33C1D5B02F8003387C2 /* ViewController.swift */; };
 		D10AC99821A300C9005F057C /* ProcessorCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10AC99721A300C9005F057C /* ProcessorCollectionViewController.swift */; };
 		D10AC99821A300C9005F057C /* ProcessorCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10AC99721A300C9005F057C /* ProcessorCollectionViewController.swift */; };
-		D10AC99921A300C9005F057C /* ProcessorCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10AC99721A300C9005F057C /* ProcessorCollectionViewController.swift */; };
 		D12E0C951C47F91800AC98AD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C8C1C47F91800AC98AD /* AppDelegate.swift */; };
 		D12E0C951C47F91800AC98AD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C8C1C47F91800AC98AD /* AppDelegate.swift */; };
 		D12E0C961C47F91800AC98AD /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C8D1C47F91800AC98AD /* LaunchScreen.xib */; };
 		D12E0C961C47F91800AC98AD /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C8D1C47F91800AC98AD /* LaunchScreen.xib */; };
 		D12E0C971C47F91800AC98AD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C8F1C47F91800AC98AD /* Main.storyboard */; };
 		D12E0C971C47F91800AC98AD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C8F1C47F91800AC98AD /* Main.storyboard */; };
@@ -33,7 +31,6 @@
 		D12E0CA21C47F92200AC98AD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C9D1C47F92200AC98AD /* AppDelegate.swift */; };
 		D12E0CA21C47F92200AC98AD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C9D1C47F92200AC98AD /* AppDelegate.swift */; };
 		D12E0CA31C47F92200AC98AD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C9E1C47F92200AC98AD /* Assets.xcassets */; };
 		D12E0CA31C47F92200AC98AD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C9E1C47F92200AC98AD /* Assets.xcassets */; };
 		D12E0CA41C47F92200AC98AD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C9F1C47F92200AC98AD /* Main.storyboard */; };
 		D12E0CA41C47F92200AC98AD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D12E0C9F1C47F92200AC98AD /* Main.storyboard */; };
-		D12E0CB51C47F9C100AC98AD /* ImageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C911C47F91800AC98AD /* ImageCollectionViewCell.swift */; };
 		D12E0CB61C47F9C100AC98AD /* NormalLoadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C941C47F91800AC98AD /* NormalLoadingViewController.swift */; };
 		D12E0CB61C47F9C100AC98AD /* NormalLoadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C941C47F91800AC98AD /* NormalLoadingViewController.swift */; };
 		D1679A461C4E78B20020FD12 /* Kingfisher-watchOS-Demo Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D1679A451C4E78B20020FD12 /* Kingfisher-watchOS-Demo Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 		D1679A461C4E78B20020FD12 /* Kingfisher-watchOS-Demo Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D1679A451C4E78B20020FD12 /* Kingfisher-watchOS-Demo Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 		D1679A531C4E78B20020FD12 /* Kingfisher-watchOS-Demo.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = D1679A391C4E78B20020FD12 /* Kingfisher-watchOS-Demo.app */; };
 		D1679A531C4E78B20020FD12 /* Kingfisher-watchOS-Demo.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = D1679A391C4E78B20020FD12 /* Kingfisher-watchOS-Demo.app */; };
@@ -45,17 +42,14 @@
 		D171763E204782F300EFC8C5 /* Kingfisher.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D1717639204782D500EFC8C5 /* Kingfisher.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		D171763E204782F300EFC8C5 /* Kingfisher.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D1717639204782D500EFC8C5 /* Kingfisher.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		D171763F2047837900EFC8C5 /* Kingfisher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D17176402047837900EFC8C5 /* Kingfisher.framework */; };
 		D171763F2047837900EFC8C5 /* Kingfisher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D17176402047837900EFC8C5 /* Kingfisher.framework */; };
 		D1A1CCA321A1879600263AD8 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA221A1879600263AD8 /* MainViewController.swift */; };
 		D1A1CCA321A1879600263AD8 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA221A1879600263AD8 /* MainViewController.swift */; };
-		D1A1CCA421A1879600263AD8 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA221A1879600263AD8 /* MainViewController.swift */; };
 		D1A1CCA721A18A3200263AD8 /* UIViewController+KingfisherOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA621A18A3200263AD8 /* UIViewController+KingfisherOperation.swift */; };
 		D1A1CCA721A18A3200263AD8 /* UIViewController+KingfisherOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA621A18A3200263AD8 /* UIViewController+KingfisherOperation.swift */; };
 		D1A1CCA821A18A3200263AD8 /* UIViewController+KingfisherOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA621A18A3200263AD8 /* UIViewController+KingfisherOperation.swift */; };
 		D1A1CCA821A18A3200263AD8 /* UIViewController+KingfisherOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1CCA621A18A3200263AD8 /* UIViewController+KingfisherOperation.swift */; };
 		D1CE1BD021A1AFA300419000 /* TransitionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BCF21A1AFA300419000 /* TransitionViewController.swift */; };
 		D1CE1BD021A1AFA300419000 /* TransitionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BCF21A1AFA300419000 /* TransitionViewController.swift */; };
-		D1CE1BD121A1AFA300419000 /* TransitionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BCF21A1AFA300419000 /* TransitionViewController.swift */; };
 		D1CE1BD321A1B45A00419000 /* ImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BD221A1B45A00419000 /* ImageLoader.swift */; };
 		D1CE1BD321A1B45A00419000 /* ImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BD221A1B45A00419000 /* ImageLoader.swift */; };
 		D1CE1BD421A1B45A00419000 /* ImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BD221A1B45A00419000 /* ImageLoader.swift */; };
 		D1CE1BD421A1B45A00419000 /* ImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CE1BD221A1B45A00419000 /* ImageLoader.swift */; };
 		D1F06F3321AA4292000B1C38 /* DetailImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F06F3221AA4292000B1C38 /* DetailImageViewController.swift */; };
 		D1F06F3321AA4292000B1C38 /* DetailImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F06F3221AA4292000B1C38 /* DetailImageViewController.swift */; };
-		D1F06F3421AA4292000B1C38 /* DetailImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F06F3221AA4292000B1C38 /* DetailImageViewController.swift */; };
+		D1F06F3521AA5938000B1C38 /* ImageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12E0C911C47F91800AC98AD /* ImageCollectionViewCell.swift */; };
 		D1FAB06F21A853E600908910 /* HighResolutionCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FAB06E21A853E600908910 /* HighResolutionCollectionViewController.swift */; };
 		D1FAB06F21A853E600908910 /* HighResolutionCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FAB06E21A853E600908910 /* HighResolutionCollectionViewController.swift */; };
-		D1FAB07021A853E600908910 /* HighResolutionCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FAB06E21A853E600908910 /* HighResolutionCollectionViewController.swift */; };
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
 /* Begin PBXContainerItemProxy section */
 /* Begin PBXContainerItemProxy section */
@@ -585,16 +579,10 @@
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
 				D1CE1BD421A1B45A00419000 /* ImageLoader.swift in Sources */,
 				D1CE1BD421A1B45A00419000 /* ImageLoader.swift in Sources */,
-				D12E0CB51C47F9C100AC98AD /* ImageCollectionViewCell.swift in Sources */,
-				D1CE1BD121A1AFA300419000 /* TransitionViewController.swift in Sources */,
-				D10AC99921A300C9005F057C /* ProcessorCollectionViewController.swift in Sources */,
 				D12E0CB61C47F9C100AC98AD /* NormalLoadingViewController.swift in Sources */,
 				D12E0CB61C47F9C100AC98AD /* NormalLoadingViewController.swift in Sources */,
+				D1F06F3521AA5938000B1C38 /* ImageCollectionViewCell.swift in Sources */,
 				D1A1CCA821A18A3200263AD8 /* UIViewController+KingfisherOperation.swift in Sources */,
 				D1A1CCA821A18A3200263AD8 /* UIViewController+KingfisherOperation.swift in Sources */,
-				D1FAB07021A853E600908910 /* HighResolutionCollectionViewController.swift in Sources */,
 				D12E0CA21C47F92200AC98AD /* AppDelegate.swift in Sources */,
 				D12E0CA21C47F92200AC98AD /* AppDelegate.swift in Sources */,
-				D1F06F3421AA4292000B1C38 /* DetailImageViewController.swift in Sources */,
-				4B1C7A3E21A256E300CE9D31 /* InfinityCollectionViewController.swift in Sources */,
-				D1A1CCA421A1879600263AD8 /* MainViewController.swift in Sources */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};

+ 69 - 30
Sources/Cache/ImageCache.swift

@@ -282,40 +282,79 @@ open class ImageCache {
         // Memory storage should not throw.
         // Memory storage should not throw.
         memoryStorage.storeNoThrow(value: image, forKey: computedKey)
         memoryStorage.storeNoThrow(value: image, forKey: computedKey)
 
 
-        if toDisk {
-            ioQueue.async {
-                let result: CacheStoreResult
-                if let data = serializer.data(with: image, original: original) {
-                    do {
-                        try self.diskStorage.store(value: data, forKey: computedKey)
-                        result = CacheStoreResult(memoryCacheResult: .success(()), diskCacheResult: .success(()))
-                    } catch {
-                        let diskError: KingfisherError
-                        if let error = error as? KingfisherError {
-                            diskError = error
-                        } else {
-                            diskError = .cacheError(reason: .cannotConvertToData(object: data, error: error))
-                        }
-                        
-                        result = CacheStoreResult(
-                            memoryCacheResult: .success(()),
-                            diskCacheResult: .failure(diskError)
-                        )
-                    }
-                } else {
-                    let diskError = KingfisherError.cacheError(
-                        reason: .cannotSerializeImage(image: image, original: original, serializer: serializer))
-                    result = CacheStoreResult(memoryCacheResult: .success(()), diskCacheResult: .failure(diskError))
-                }
-                if let completionHandler = completionHandler {
-                    callbackQueue.execute { completionHandler(result) }
-                }
-            }
-        } else {
+        guard toDisk else {
             if let completionHandler = completionHandler {
             if let completionHandler = completionHandler {
                 let result = CacheStoreResult(memoryCacheResult: .success(()), diskCacheResult: .success(()))
                 let result = CacheStoreResult(memoryCacheResult: .success(()), diskCacheResult: .success(()))
                 callbackQueue.execute { completionHandler(result) }
                 callbackQueue.execute { completionHandler(result) }
             }
             }
+            return
+        }
+        
+        ioQueue.async {
+            if let data = serializer.data(with: image, original: original) {
+                self.syncStoreData(
+                    data,
+                    forKey: key,
+                    processorIdentifier: identifier,
+                    callbackQueue: callbackQueue,
+                    completionHandler: completionHandler)
+            } else {
+                guard let completionHandler = completionHandler else { return }
+                
+                let diskError = KingfisherError.cacheError(
+                    reason: .cannotSerializeImage(image: image, original: original, serializer: serializer))
+                let result = CacheStoreResult(
+                    memoryCacheResult: .success(()),
+                    diskCacheResult: .failure(diskError))
+                callbackQueue.execute { completionHandler(result) }
+            }
+        }
+    }
+    
+    open func storeToDisk(
+        _ data: Data,
+        forKey key: String,
+        processorIdentifier identifier: String = "",
+        callbackQueue: CallbackQueue = .untouch,
+        completionHandler: ((CacheStoreResult) -> Void)? = nil)
+    {
+        ioQueue.async {
+            self.syncStoreData(
+                data,
+                forKey: key,
+                processorIdentifier: identifier,
+                callbackQueue: callbackQueue,
+                completionHandler: completionHandler)
+        }
+    }
+    
+    private func syncStoreData(
+        _ data: Data,
+        forKey key: String,
+        processorIdentifier identifier: String = "",
+        callbackQueue: CallbackQueue = .untouch,
+        completionHandler: ((CacheStoreResult) -> Void)? = nil)
+    {
+        let computedKey = key.computedKey(with: identifier)
+        let result: CacheStoreResult
+        do {
+            try self.diskStorage.store(value: data, forKey: computedKey)
+            result = CacheStoreResult(memoryCacheResult: .success(()), diskCacheResult: .success(()))
+        } catch {
+            let diskError: KingfisherError
+            if let error = error as? KingfisherError {
+                diskError = error
+            } else {
+                diskError = .cacheError(reason: .cannotConvertToData(object: data, error: error))
+            }
+            
+            result = CacheStoreResult(
+                memoryCacheResult: .success(()),
+                diskCacheResult: .failure(diskError)
+            )
+        }
+        if let completionHandler = completionHandler {
+            callbackQueue.execute { completionHandler(result) }
         }
         }
     }
     }
     
     

+ 2 - 2
Sources/General/KingfisherError.swift

@@ -139,7 +139,7 @@ public enum KingfisherError: Error {
         /// - image: The input image needs to be serialized to cache.
         /// - image: The input image needs to be serialized to cache.
         /// - original: The original image data, if exists.
         /// - original: The original image data, if exists.
         /// - serializer: The `CacheSerializer` used for the image serializing.
         /// - serializer: The `CacheSerializer` used for the image serializing.
-        case cannotSerializeImage(image: Image, original: Data?, serializer: CacheSerializer)
+        case cannotSerializeImage(image: Image?, original: Data?, serializer: CacheSerializer)
     }
     }
     
     
     
     
@@ -300,7 +300,7 @@ extension KingfisherError.CacheErrorReason {
                    "Object: \(object). Underlying error: \(error)"
                    "Object: \(object). Underlying error: \(error)"
         case .cannotSerializeImage(let image, let originalData, let serializer):
         case .cannotSerializeImage(let image, let originalData, let serializer):
             return "Cannot serialize an image due to the cache serializer returning `nil`. " +
             return "Cannot serialize an image due to the cache serializer returning `nil`. " +
-                   "Image: \(image), original data: \(String(describing: originalData)), serializer: \(serializer)."
+                   "Image: \(String(describing:image)), original data: \(String(describing: originalData)), serializer: \(serializer)."
         }
         }
     }
     }
     
     

+ 3 - 11
Sources/General/KingfisherManager.swift

@@ -239,20 +239,12 @@ public class KingfisherManager {
                 let needToCacheOriginalImage = options.cacheOriginalImage &&
                 let needToCacheOriginalImage = options.cacheOriginalImage &&
                     options.processor != DefaultImageProcessor.default
                     options.processor != DefaultImageProcessor.default
                 if needToCacheOriginalImage {
                 if needToCacheOriginalImage {
-                    let defaultProcessor = DefaultImageProcessor.default
                     self.processQueue.async {
                     self.processQueue.async {
-                        guard let originalImage =
-                            defaultProcessor.process(item: .data(value.originalData), options: options)
-                            else { return }
-
                         let originalCache = options.originalCache ?? targetCache
                         let originalCache = options.originalCache ?? targetCache
-                        originalCache.store(
-                            originalImage,
-                            original: value.originalData,
+                        originalCache.storeToDisk(
+                            value.originalData,
                             forKey: source.cacheKey,
                             forKey: source.cacheKey,
-                            processorIdentifier: defaultProcessor.identifier,
-                            cacheSerializer: options.cacheSerializer,
-                            toDisk: !options.cacheMemoryOnly)
+                            processorIdentifier: DefaultImageProcessor.default.identifier)
                     }
                     }
                 }
                 }
 
 

+ 3 - 1
Sources/General/KingfisherOptionsInfo.swift

@@ -160,10 +160,12 @@ public enum KingfisherOptionsInfoItem {
     /// This option will be ignored if the target image is not animated image data.
     /// This option will be ignored if the target image is not animated image data.
     case onlyLoadFirstFrame
     case onlyLoadFirstFrame
     
     
-    /// If set and an `ImageProcessor` is used, Kingfisher will try to cache both  the final result and original
+    /// If set and an `ImageProcessor` is used, Kingfisher will try to cache both the final result and original
     /// image. Kingfisher will have a chance to use the original image when another processor is applied to the same
     /// image. Kingfisher will have a chance to use the original image when another processor is applied to the same
     /// resource, instead of downloading it again. You can use `.originalCache` to specify a cache or the original
     /// resource, instead of downloading it again. You can use `.originalCache` to specify a cache or the original
     /// images if neccessary.
     /// images if neccessary.
+    ///
+    /// The original image will be only cached to disk storage.
     case cacheOriginalImage
     case cacheOriginalImage
     
     
     /// If set and a downloading error occurred Kingfisher will set provided image (or empty)
     /// If set and a downloading error occurred Kingfisher will set provided image (or empty)