Explorar o código

Set webURLs to nil when resource is nil

pNre %!s(int64=9) %!d(string=hai) anos
pai
achega
c1eaba3546
Modificáronse 2 ficheiros con 8 adicións e 4 borrados
  1. 4 2
      Sources/NSButton+Kingfisher.swift
  2. 4 2
      Sources/UIButton+Kingfisher.swift

+ 4 - 2
Sources/NSButton+Kingfisher.swift

@@ -55,6 +55,7 @@ extension Kingfisher where Base: NSButton {
     {
     {
         guard let resource = resource else {
         guard let resource = resource else {
             base.image = placeholder
             base.image = placeholder
+            setWebURL(nil)
             completionHandler?(nil, nil, .none, nil)
             completionHandler?(nil, nil, .none, nil)
             return .empty
             return .empty
         }
         }
@@ -124,6 +125,7 @@ extension Kingfisher where Base: NSButton {
     {
     {
         guard let resource = resource else {
         guard let resource = resource else {
             base.alternateImage = placeholder
             base.alternateImage = placeholder
+            setAlternateWebURL(nil)
             completionHandler?(nil, nil, .none, nil)
             completionHandler?(nil, nil, .none, nil)
             return .empty
             return .empty
         }
         }
@@ -188,7 +190,7 @@ extension Kingfisher where Base: NSButton {
         return objc_getAssociatedObject(base, &lastURLKey) as? URL
         return objc_getAssociatedObject(base, &lastURLKey) as? URL
     }
     }
     
     
-    fileprivate func setWebURL(_ url: URL) {
+    fileprivate func setWebURL(_ url: URL?) {
         objc_setAssociatedObject(base, &lastURLKey, url, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
         objc_setAssociatedObject(base, &lastURLKey, url, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
     }
     }
     
     
@@ -205,7 +207,7 @@ extension Kingfisher where Base: NSButton {
         return objc_getAssociatedObject(base, &lastAlternateURLKey) as? URL
         return objc_getAssociatedObject(base, &lastAlternateURLKey) as? URL
     }
     }
     
     
-    fileprivate func setAlternateWebURL(_ url: URL) {
+    fileprivate func setAlternateWebURL(_ url: URL?) {
         objc_setAssociatedObject(base, &lastAlternateURLKey, url, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
         objc_setAssociatedObject(base, &lastAlternateURLKey, url, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
     }
     }
     
     

+ 4 - 2
Sources/UIButton+Kingfisher.swift

@@ -57,6 +57,7 @@ extension Kingfisher where Base: UIButton {
     {
     {
         guard let resource = resource else {
         guard let resource = resource else {
             base.setImage(placeholder, for: state)
             base.setImage(placeholder, for: state)
+            setWebURL(nil, for: state)
             completionHandler?(nil, nil, .none, nil)
             completionHandler?(nil, nil, .none, nil)
             return .empty
             return .empty
         }
         }
@@ -131,6 +132,7 @@ extension Kingfisher where Base: UIButton {
     {
     {
         guard let resource = resource else {
         guard let resource = resource else {
             base.setBackgroundImage(placeholder, for: state)
             base.setBackgroundImage(placeholder, for: state)
+            setBackgroundWebURL(nil, for: state)
             completionHandler?(nil, nil, .none, nil)
             completionHandler?(nil, nil, .none, nil)
             return .empty
             return .empty
         }
         }
@@ -195,7 +197,7 @@ extension Kingfisher where Base: UIButton {
         return webURLs[NSNumber(value:state.rawValue)] as? URL
         return webURLs[NSNumber(value:state.rawValue)] as? URL
     }
     }
     
     
-    fileprivate func setWebURL(_ url: URL, for state: UIControlState) {
+    fileprivate func setWebURL(_ url: URL?, for state: UIControlState) {
         webURLs[NSNumber(value:state.rawValue)] = url
         webURLs[NSNumber(value:state.rawValue)] = url
     }
     }
     
     
@@ -238,7 +240,7 @@ extension Kingfisher where Base: UIButton {
         return backgroundWebURLs[NSNumber(value:state.rawValue)] as? URL
         return backgroundWebURLs[NSNumber(value:state.rawValue)] as? URL
     }
     }
     
     
-    fileprivate func setBackgroundWebURL(_ url: URL, for state: UIControlState) {
+    fileprivate func setBackgroundWebURL(_ url: URL?, for state: UIControlState) {
         backgroundWebURLs[NSNumber(value:state.rawValue)] = url
         backgroundWebURLs[NSNumber(value:state.rawValue)] = url
     }
     }