From 6ca759f18292a87df84ed6c1fcda3f65006450f3 Mon Sep 17 00:00:00 2001 From: Tom von Schwerdtner Date: Wed, 28 Mar 2012 16:27:31 -0300 Subject: [PATCH] Two observers get added every time downloaderWithURL is called, which is unnecessary and seems to result in an imbalance in SDNetworkActivityIndicator between startActivity and stopActivity calls (which leads to the indicator not showing when it should during any initial app activity). This fix is possibly not ideal, but it does the trick. --- SDWebImageDownloader.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/SDWebImageDownloader.m b/SDWebImageDownloader.m index f114553..81a3ae1 100644 --- a/SDWebImageDownloader.m +++ b/SDWebImageDownloader.m @@ -41,7 +41,13 @@ NSString *const SDWebImageDownloadStopNotification = @"SDWebImageDownloadStopNot // To use it, just add #import "SDNetworkActivityIndicator.h" in addition to the SDWebImage import if (NSClassFromString(@"SDNetworkActivityIndicator")) { + id activityIndicator = [NSClassFromString(@"SDNetworkActivityIndicator") performSelector:NSSelectorFromString(@"sharedActivityIndicator")]; + + // Remove observer in case it was previously added. + [[NSNotificationCenter defaultCenter] removeObserver:activityIndicator name:SDWebImageDownloadStartNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:activityIndicator name:SDWebImageDownloadStopNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:activityIndicator selector:NSSelectorFromString(@"startActivity") name:SDWebImageDownloadStartNotification object:nil];