Browse Source

Capture self weakly inside completion block

Virgilio Favero Neto 10 years ago
parent
commit
835df55063
1 changed files with 7 additions and 7 deletions
  1. 7 7
      Kingfisher/UIImageView+Kingfisher.swift

+ 7 - 7
Kingfisher/UIImageView+Kingfisher.swift

@@ -119,14 +119,14 @@ public extension UIImageView {
                     progressBlock(receivedSize: receivedSize, totalSize: totalSize)
                 })
             }
-        }) { (image, error, cacheType, imageURL) -> () in
-            dispatch_async(dispatch_get_main_queue(), { () -> Void in
-                if (imageURL == self.kf_webURL && image != nil) {
-                    self.image = image;
-                }
-                completionHandler?(image: image, error: error, cacheType:cacheType, imageURL: imageURL)
+            }, completionHandler: {[weak self] (image, error, cacheType, imageURL) -> () in
+                dispatch_async(dispatch_get_main_queue(), { () -> Void in
+                    if let sSelf = self where imageURL == sSelf.kf_webURL && image != nil {
+                        sSelf.image = image;
+                    }
+                    completionHandler?(image: image, error: error, cacheType:cacheType, imageURL: imageURL)
+                })
             })
-        }
         
         return task
     }