diff --git a/MKNetworkKit/MKNetworkEngine.m b/MKNetworkKit/MKNetworkEngine.m index a238f97..439909c 100644 --- a/MKNetworkKit/MKNetworkEngine.m +++ b/MKNetworkKit/MKNetworkEngine.m @@ -460,7 +460,7 @@ -(void) enqueueOperation:(MKNetworkOperation*) operation forceReload:(BOOL) forc if(cachedData) { dispatch_async(dispatch_get_main_queue(), ^{ // Jump back to the original thread here since setCachedData updates the main thread - [operation setCachedData:cachedData]; + [operation setCachedData:cachedData notifyObservers: !forceReload]; }); if(!forceReload) { diff --git a/MKNetworkKit/MKNetworkOperation.h b/MKNetworkKit/MKNetworkOperation.h index 427b78d..5bce8ca 100644 --- a/MKNetworkKit/MKNetworkOperation.h +++ b/MKNetworkKit/MKNetworkOperation.h @@ -680,7 +680,7 @@ typedef enum { // internal methods called by MKNetworkEngine only. // Don't touch -(BOOL) isCacheable; --(void) setCachedData:(NSData*) cachedData; +-(void) setCachedData:(NSData*) cachedData notifyObservers: (BOOL) notify; -(void) setCacheHandler:(MKNKResponseBlock) cacheHandler; -(void) updateHandlersFromOperation:(MKNetworkOperation*) operation; -(void) updateOperationBasedOnPreviousHeaders:(NSMutableDictionary*) headers; diff --git a/MKNetworkKit/MKNetworkOperation.m b/MKNetworkKit/MKNetworkOperation.m index 4932304..139e4d7 100644 --- a/MKNetworkKit/MKNetworkOperation.m +++ b/MKNetworkKit/MKNetworkOperation.m @@ -536,10 +536,11 @@ -(void) updateHandlersFromOperation:(MKNetworkOperation*) operation { [self.downloadStreams addObjectsFromArray:operation.downloadStreams]; } --(void) setCachedData:(NSData*) cachedData { +-(void) setCachedData:(NSData*) cachedData notifyObservers: (BOOL) notify { self.cachedResponse = cachedData; - [self operationSucceeded]; + if (notify) + [self operationSucceeded]; } -(void) updateOperationBasedOnPreviousHeaders:(NSMutableDictionary*) headers {