Просмотр исходного кода

Set webURLs to nil when resource is nil

pNre 9 лет назад
Родитель
Сommit
c1eaba3546
2 измененных файлов с 8 добавлено и 4 удалено
  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 {
             base.image = placeholder
+            setWebURL(nil)
             completionHandler?(nil, nil, .none, nil)
             return .empty
         }
@@ -124,6 +125,7 @@ extension Kingfisher where Base: NSButton {
     {
         guard let resource = resource else {
             base.alternateImage = placeholder
+            setAlternateWebURL(nil)
             completionHandler?(nil, nil, .none, nil)
             return .empty
         }
@@ -188,7 +190,7 @@ extension Kingfisher where Base: NSButton {
         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)
     }
     
@@ -205,7 +207,7 @@ extension Kingfisher where Base: NSButton {
         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)
     }
     

+ 4 - 2
Sources/UIButton+Kingfisher.swift

@@ -57,6 +57,7 @@ extension Kingfisher where Base: UIButton {
     {
         guard let resource = resource else {
             base.setImage(placeholder, for: state)
+            setWebURL(nil, for: state)
             completionHandler?(nil, nil, .none, nil)
             return .empty
         }
@@ -131,6 +132,7 @@ extension Kingfisher where Base: UIButton {
     {
         guard let resource = resource else {
             base.setBackgroundImage(placeholder, for: state)
+            setBackgroundWebURL(nil, for: state)
             completionHandler?(nil, nil, .none, nil)
             return .empty
         }
@@ -195,7 +197,7 @@ extension Kingfisher where Base: UIButton {
         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
     }
     
@@ -238,7 +240,7 @@ extension Kingfisher where Base: UIButton {
         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
     }