From 7b947163dad3153a50953deecbaa119f504c7883 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Fri, 9 Nov 2012 11:05:18 +0100 Subject: [PATCH] Copy all stored blocks --- SDWebImage/SDWebImageDownloader.m | 4 ++-- SDWebImage/SDWebImageDownloaderOperation.m | 12 ++++++------ SDWebImage/SDWebImageManager.m | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/SDWebImage/SDWebImageDownloader.m b/SDWebImage/SDWebImageDownloader.m index ac55221..be1a9e9 100644 --- a/SDWebImage/SDWebImageDownloader.m +++ b/SDWebImage/SDWebImageDownloader.m @@ -151,8 +151,8 @@ NSString *const kCompletedCallbackKey = @"completed"; // Handle single download of simultaneous download request for the same URL NSMutableArray *callbacksForURL = self.URLCallbacks[url]; NSMutableDictionary *callbacks = NSMutableDictionary.new; - if (progressBlock) callbacks[kProgressCallbackKey] = progressBlock; - if (completedBlock) callbacks[kCompletedCallbackKey] = completedBlock; + if (progressBlock) callbacks[kProgressCallbackKey] = [progressBlock copy]; + if (completedBlock) callbacks[kCompletedCallbackKey] = [completedBlock copy]; [callbacksForURL addObject:callbacks]; self.URLCallbacks[url] = callbacksForURL; diff --git a/SDWebImage/SDWebImageDownloaderOperation.m b/SDWebImage/SDWebImageDownloaderOperation.m index 8e0304c..0af2733 100644 --- a/SDWebImage/SDWebImageDownloaderOperation.m +++ b/SDWebImage/SDWebImageDownloaderOperation.m @@ -12,9 +12,9 @@ @interface SDWebImageDownloaderOperation () -@property (strong, nonatomic) SDWebImageDownloaderProgressBlock progressBlock; -@property (strong, nonatomic) SDWebImageDownloaderCompletedBlock completedBlock; -@property (strong, nonatomic) void (^cancelBlock)(); +@property (copy, nonatomic) SDWebImageDownloaderProgressBlock progressBlock; +@property (copy, nonatomic) SDWebImageDownloaderCompletedBlock completedBlock; +@property (copy, nonatomic) void (^cancelBlock)(); @property (assign, nonatomic, getter = isExecuting) BOOL executing; @property (assign, nonatomic, getter = isFinished) BOOL finished; @@ -37,9 +37,9 @@ _queue = queue; _request = request; _options = options; - _progressBlock = progressBlock; - _completedBlock = completedBlock; - _cancelBlock = cancelBlock; + _progressBlock = [progressBlock copy]; + _completedBlock = [completedBlock copy]; + _cancelBlock = [cancelBlock copy]; _executing = NO; _finished = NO; _expectedSize = 0; diff --git a/SDWebImage/SDWebImageManager.m b/SDWebImage/SDWebImageManager.m index 5897172..4e3e6a4 100644 --- a/SDWebImage/SDWebImageManager.m +++ b/SDWebImage/SDWebImageManager.m @@ -12,7 +12,7 @@ @interface SDWebImageCombinedOperation : NSObject @property (assign, nonatomic, getter = isCancelled) BOOL cancelled; -@property (strong, nonatomic) void (^cancelBlock)(); +@property (copy, nonatomic) void (^cancelBlock)(); @end @@ -146,7 +146,7 @@ } else { - _cancelBlock = cancelBlock; + _cancelBlock = [cancelBlock copy]; } }