Explorar el Código

Merge pull request #2642 from zhongwuzw/break_retain_of_prefetch_block

Break strong retain cycle for prefetch block
DreamPiggy hace 7 años
padre
commit
d76dd081ca
Se han modificado 1 ficheros con 5 adiciones y 1 borrados
  1. 5 1
      SDWebImage/SDWebImagePrefetcher.m

+ 5 - 1
SDWebImage/SDWebImagePrefetcher.m

@@ -107,7 +107,11 @@
     for (NSURL *url in token.urls) {
         __weak typeof(self) wself = self;
         SDAsyncBlockOperation *prefetchOperation = [SDAsyncBlockOperation blockOperationWithBlock:^(SDAsyncBlockOperation * _Nonnull asyncOperation) {
-             id<SDWebImageOperation> operation = [self.manager loadImageWithURL:url options:self.options context:self.context progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
+             __strong typeof(wself) strongSelf = wself;
+             if (!strongSelf) {
+                 return;
+             }
+             id<SDWebImageOperation> operation = [strongSelf.manager loadImageWithURL:url options:strongSelf.options context:strongSelf.context progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
                  __strong typeof(wself) sself = wself;
                  if (!sself) {
                      return;