See all tickets marked for the 4.4.2 release
SDImageCacheConfig.diskCacheExpireType #2357SDImageCache via SDImageCacheConfig.shouldUseWeakMemoryCache #2379FLAnimatedImage, this allow user to disable memory cache for associated FLAnimatedImage instance #2378diskImageDataForKey: sync API for SDImageCache to directly get the image data from disk #2391SDWebImageManager.runningOperations type changed from Array to Set #2382FLAnimatedImageView+WebCache delayed draw due to #2047 which is now reverted #2393__bridge_transfer with __bridge when convert from CFStringRef to NSString #2394See all tickets marked for the 4.4.1 release
See all tickets marked for the 4.4.0 release
UIViewAnimationOptionAllowUserInteraction as default options for convenient image transition #2315@synchronized with dispatch_semaphore_t in SDWebImageManager #2340See all tickets marked for the 4.3.3 release
See all tickets marked for the 4.3.2 release
See all tickets marked for the 4.3.1 release
See all tickets marked for the 4.3.0 release
sd_imageProgress property represent the image loading progress, this allow user add KVO on it for complicated logic #2172sd_imageTransition property support custom image transition after image load finished #2182setAnimationImagesWithURLs weak reference may dealloc before the animated images was set #2178See all tickets marked for the 4.2.3 release
See all tickets marked for the 4.2.2 release
UIProgressView to show image download progress #2096UIView+WebCache #2093 #2097 #2092See all tickets marked for the 4.2.1 release
SDWebImageCoderHelper; SDWebImageFrame abstracts animated images frames)See all tickets marked for the 4.2.0 release
UIImage+GIF category for animated GIF! Not enabled by default. #2064SDWebImageGIFCoder on macOS (use NSImage API) #2067-[NSImage isGIF] method to return whether current NSImage has GIF representation #2071SDImageCache disk cache #2057UIImage(GIF) sd_animatedGIFWithData crash #1991 #1837SDWebImageManager.m __destroy_helper_block_ crash #2048 #1941FLAnimatedImage instance on global queue #2047See all tickets marked for the 4.1.2 release
SDWebImageDownloaderOperation not call done when use SDWebImageDownloaderIgnoreCachedResponse #2049WebP decoding little enhancement. Do not need create WebP iterator for static images #2050finished check from equal to equal or greater than to protect accident condition #2051See all tickets marked for the 4.1.1 release
[SDWebImageDownloaderOperation reset]_block_invoke 2f892f9 fixes #1883SDWebImageDownloadOperation imageData multi-thread issue #2011 fixes #1998 [SDWebImageDownloaderOperation URLSession:dataTask:didReceiveData:] crashCFRelease on NULL if CGImageSourceRef create failed #1978 fixes #1968 #1834 #1947CGBitmapContextCreate bitmap memory leak #1976 replaces #1860 fixes #1974sd_currentBackgroundImageURL and sd_backgroundImageURLForState: for UIButton #2002UIButton placeholer-image even if the url is nil #2043 fixes #1721 #1964 replaces #1790CGImageSourceCreateIncremental to perform progressive decoding instead of decode partial data each time from the beginning to improve performance and remove that gray background #2040 fixes #1899macOS #1984WebP and animated WebP decoding #1985 fixes #1999 #1885FOUNDATION_EXPORT over extern #1977SDTestCase #1980CLANG_WARN_STRICT_PROTOTYPES #1995 #2027 fixes #2022macOS Demo deployment target to 10.10 to support build on Xcode 9 #2035See all tickets marked for the 4.1.0 release
NSURLSessionConfiguration used by SDWebImageDownloader #1891 fixes #1870macOS #1975NSURLErrorNetworkConnectionLost #1767CFBundleVersion and CFBundleShortVersionString not valid for all platforms #1784 + 23a8be8 fixes #1780UIActivityIndicator not always initialized on main thread #1802 + a6af214 fixes #1801SDImageCacheConfig forward declaration changed to import #1805@autoreleasepool to SDImageCache.storeImage #1849long long type transfer to NSInteger may become negative #1879self.URLOperations dictionary #1911 fixes #1909 #1950 #1835 #1838self which appears to create a dangled pointer #1940 fixes #1807 #1858 #1859 #1821 #1925 #1883 #1816 #1716d9f7cf4 (replaces #1781) fixes #1776See all tickets marked for the 4.0.0 release Versions 4.0.0-beta and 4.0.0-beta 2 list all the changes.
See all tickets marked for the 4.0.0 release
00bf467 efad1e5 8d1a0ae. Fixed #538, #880 and #586. This one is a more robust solution than #884 or #894. Can be activated via SDWebImageScaleDownLargeImages or SDWebImageDownloaderScaleDownLargeImagesSee all tickets marked for the 4.0.0 release
SDWebImage xcodeproj contains the following targets:
SDWebImage iOS static (iOS static lib)SDWebImage watchOS static (watchOS static lib)SDWebImage OSX (OSX dynamic framework)SDWebImage iOS (iOS dynamic framework)SDWebImage tvOS (tvOS dynamic framework)SDWebImage watchOS (watchOS dynamic framework)SDWebImage Demo xcodeproj contains the following targets:SDWebImage OSX DemoSDWebImage iOS DemoSDWebImage TV DemoSDWebImage Watch Demolibwep version to 0.5.1SDWebImageManager downloadImageWithURL:options:progress:completed: to loadImageWithURL:options:progress:completed: as it makes more sense, since we check the cache first and download only if needed a32a177SDWebImage+MKAnnotation, SDWebImage+WebP, SDWebImageFramework:SDWebImagetarget that build as a static library (all subspecs included) -> libSDWebImage.aSDWebImageiOS and SDWebImagetvOS targets that build as dynamic frameworksWebImage to SDWebImage. Renamed the WebImage.h to SDWebImage.h to match the framework namingSDWebImageDownloader method - downloadImageWithURL:options:progress:completed: now returns a SDWebImageDownloadToken * instead of id <SDWebImageOperation> (give the ability to cancel downloads using the returned token)SDWebImageDownloaderOperation initializer - initWithRequest:options:progress:completed:cancelled split into - initWithRequest:options and addHandlersForProgress:completed:. Note: there is no more cancel block64382b9 includes:
instancetype instead of idSDImageCache)SDWebImageQueryCompletedBlock with SDCacheQueryCompletedBlock and added an NSData * paramdone param of SDImageCache queryDiskCacheForKey:done: is now a SDCacheQueryCompletedBlock and those blocks must now include an NSData * paramSDWebImageCompletionWithFinishedBlock with SDInternalCompletionBlock and added an NSData * paramcompleted param of SDWebImageManager loadImageWithURL:options:progress:completed: is now SDInternalCompletionBlock and those blocks must now include an NSData * paramSDWebImageCompletionBlock to SDExternalCompletionBlockUIImage will no longer respond to sd_animatedGIFNamed: or sd_animatedImageByScalingAndCroppingToSize:SDWebImage iOS static lib target to SDWebImage iOS static for clarityNSData ImageContentType category, instead of returning the contentType as a string, the new added method sd_imageFormatForImageData will return a SDImageFormat enum valueSDImageCache configuration properties moved into SDImageCacheConfig (which is now available via config property):shouldDecompressImagesshouldDisableiCloudshouldCacheImagesInMemorymaxCacheAgemaxCacheSizestoreImage: methods from SDImageCache were async already, but declared as sync. Properly marked them as async + added completion. Got rid of the recalculate param. If the NSData is provided, use it. Otherwise, recalculate from the UIImagediskImageExistsForURL: and cachedImageExistsForURL: from SDWebImageManagerdiskImageExistsWithKey: from SDImageCachecleanDisk and clearDisk on SDImageCache. Renamed cleanDisk to deleteOldFiles. No longer expose the sync clearDisk and deleteOldFiles, just the async ones.SDImageCache queryDiskCacheForKey:done: to queryCacheOperationForKey:done:SDImageCache clarification: imageFromDiskCacheForKey: used to also check the memory cache which I think is misleading. Now imageFromDiskCacheForKey only checks the disk cache and the new method imageFromCacheForKey checks both cachesremoveImageForKey: and removeImageForKey:fromDisk: from SDImageCache that looked sync but were async. Left only the 2 async onesUIImageView sd_cancelCurrentHighlightedImageLoadsd_ prefix to the activity indicator related methods (setShowActivityIndicatorView:, setIndicatorStyle:, showActivityIndicatorView, addActivityIndicator, removeActivityIndicator) #1640dispatch_main_async_safe for all the completion blocks on the main queue (used to be dispatch_sync) - avoiding locks.dispatch_main_sync_safe as it can be mistakenly usedurl as param to progress block SDWebImageDownloaderProgressBlock - #984WebCache category on top of FLAnimatedImageView64382b9TARGET_OS_* macros. Added SD_MAC, SD_UIKIT, SD_IOS, SD_TV, SD_WATCH. The biggest issue here was TARGET_OS_MAC was 1 for all platforms and we couldn't rely on it.SDWebImageManager - added a new initializer (initWithCache:downloader:) 9112170UIImage responds to sd_imageData and sd_imageDataAsFormat: via the MultiFormat category. Those methods transform a UIImage to the NSData representation 82d1f2eSDWebImageDownloaderOperationInterface to describe the behavior of a downloader operation. Any custom operation must conform to this protocol df3b6a5WebCache categories into a UIView WebCache category. All the other categories will make calls to this one. Customization of setting the image is done via the setImageBlock and the operationKey e1840c3UIButton, MKAnnotationView, UIImageViewinstancetype and not a fixed type - c57cf7eNSURLSessionConfiguration for SDWebImageDownloader #1654url as param to progress block SDWebImageDownloaderProgressBlock - #9848a78586SDWebImageDownloaderOperation : cancelInternal was not called because of the old mechanism rellying on the thread property - probably because that thread did not have a runloop. Removed that and now cancelInternal is called as expected f4bdae6062e50a f7e8246 c77adf4 fdb8b2c 265ace4 0c47bc3. Check for main queue instead of main thread.setObjectForKey: object cannot be nil) - #1676 7940577Carthage bitcode issue) - #1593Add support for downloading images behind redirect)9cd6779 - fixed a potential retain cycledispatch_main_async_safe macro in order to avoid redefinition when included as PodprogressBlock (background queue)FLAnimatedImageView+WebCache - #1687[NSURLCache cachedResponseForRequest:] - the fix is actually avoiding to access NSURLCache which appears to generate a race condition. We only call it if necesarry (SDWebImageRefreshCached is used and the image cannot be cached by the system when it's too big or behind authentication)fb0cdb6d 1bf62d4 #1584 - fixes #1433 #1553 #1583 #1585) - Reverted.SDWebImageManager cacheKeyFilter block and do their own calculations there.6545a3aNSURLConnection with NSURLSession #1578 #1586 - fixes #1291 #1318 #823 #1566 #1515SDWebImageManager 86fc47bf7b - fixes #1398 #870fb0cdb6d 1bf62d4 #1584 - fixes #1433 #1553 #1583 #1585f1a471e - fixes #1444removeImageForKey: not synchronous e6e5c51 - fixes #1379 #1415https://chromium.googlesource.com/webm/libwebp to https://github.com/webmproject/libwebp)cancelAllDownloads method to SDWebImageDownloader #1504NSData to disk cache: [SDImageCache storeImageDataToDisk:forKey:] #1453sd_setImageWithPreviousCachedImageWithURL:andPlaceholderImage:options:progress:completed: and deprecated it. Will remove it in 4.0.0 b40124cCGContextDrawImage: invalid context 0x0 - #1496 (fixes #1401 #1454 #1457)CGBitmapContextCreateImage: invalid context 0x0 - #1464 (fixes #1423)#if TARGET_OS_IPHONE to #if TARGET_OS_IOS)MKAnnotationView+WebCache #15476406d8e, the wrong usage of dispatch_applylibwep version to 0.4.4bf899e2 fixes #1261 #1263 compilation issue CocoaPods vs non-CocoaPodscac21e1 fixes #1366, addresses #1350 and reverts a part of #1221 - from commit 6406d8e, the wrong usage of dispatch_applydcb7985 replaces #1345 - Load local credential file32923fa Xcode 7.1 updatesAdds support for iOS 8+ Framework and Carthage #1071 #1081 #1101
[Refactor] Use NSMutableSet for failed URLs' storage instead of array #1076
Make a constant for the error domain #1011
Improve operation behavior #988
Bug fix: Collection <__NSArrayM: > was mutated while being enumerated #985
added SDWebImageAvoidAutoSetImage option to avoid automatic image addition in UIImageView and let developer to do it himself #1188
Added support for custom disk cache folder with fall back for caches directory #1153
Added some files to the workspace so they are easier to edit 8431481
[Memory Issue] Clear SDWebImagePrefetcher progressBlock when it has completed #1017
avoid warning <Error>: ImageIO: CGImageSourceCreateWithData data parameter is nil if imageData is nil 88ee3c6 #1018
allow override diskCachePath #1041
Use __typeof(self) when assigning weak reference for block #1054
[Refactor] Implement cache cost calculation as a inline function #1075
Fix parenthesis to avoid crashes #1104
Add NSCache countLimit property #1140
failedURLs can be removed at the appropriate time #1111
Purge NSCache on system memory notifications #1143
Determines at runtime is UIApplication is available as per #1082 #1085
Fixes http://git.chromium.org/webm/libwebp.git/info/refs not valid #1175 + Reverted #1193 + #1177
404 image url was causing the test to fail 0e761f4
Fix for transparency being lost in transformed images. #1121
Add handling for additional error codes that shouldn't be considered a permanent failure #1159
add webp accepted content type only if WebP enabled #1178
fix ImageIO: CGImageSourceCreateWithData data parameter is nil #1167
Applied patch for issue #1074 SDWebImage residing in swift module breaks the debugger #1138
Fixed URLs with trailing parameters get assigned an incorrect image scale value #1157 #1158
Add newline to avoid compiler warning in WebImage.h #1199
libwep version to 0.4.3SDWebImageDownloaderAllowInvalidSSLCertificates option - #937SDWebImageTransformAnimatedImage) - #703SDWebImageDownloaderOperation - #876cancelAll crash - #838SD_LOG_NONE that allows silencing the SD logs from the PrefetchersetImageWithURL: - #896NSNotificationCenter dispatch on subthreads - #987SDWebImageDownloader threading issue - #1046failedURLs - #994maxConcurrentOperationCount, fixes #527 - #897NSArray - #929SDWebImageDownloaderOperation connection:didFailWithError: should match the code from connectionDidFinishLoading:. This fixes #872 - 7f39e5e304 - Not Modified HTTP status code handling - #942kPNGSignatureData data - #981sd_imageOrientationFromImageData: crash if imageSource is nil - #819 #813 #808 #828 - temporary fixSDWebImageCombinedOperation cancel crash (also visible as SDWebImageManager cancelAll) - 28109c4 #798 #809mark from pragma mark - #827UIImageView+HighlightedWebCache - #646 #765NSURLConnectionDelegate - #711 50c4d1dSDWebImageDownloader setSuspended: - #734SDImageCache removeImageForKey:withCompletion: - #732 cd4b925SDWebImageManager cacheKeyForURL: - 5fd21e5SDWebImageManager instance from the SDWebImagePrefetcher class - 6c409cdSDWebImageManager uses the shared instance of SDWebImageDownloader - 0772019SDWebImageManager cachedImageExistsForURL: to check if an image exists in either the disk OR the memory cache - #644UIImageView. Replaces #541 - #599 30f6726diskImageExistsWithKey: deadlock - #625 6e4fbaf
For consistency, added async methods in SDWebImageManager cachedImageExistsForURL:completion: and diskImageExistsForURL:completion:performSelector:onThread:withObject:waitUntilDone: - #698runningOperations - #68NSURLConnection response statusCode not valid (e.g. 404), downloader never stops its runloop and hangs the operation queue - #735SDWebImageRefreshCached bug for large images - #744SDWebImageDownloaderLowPriority - #713 #745cacheKeyFilter was set, this was ignored when computing the scaledImageForKey. For most of the developers that did not set cacheKeyFilter, the code will work exactly the same - eb91fdddispatch_main_async_safe macro - #505 af3e4f8SDScaledImageForKey if the input image is nil - #365 #750SDWebImageDelayPlaceholder option specified - #780startPrefetchingAtIndex: method from main queue - #694SDWebImageCompat.m to SDWebImage+MKAnnotation targetWebP support to a dedicated targetUIImageView which was causing a crash in the nested blockcalculateSizeWithCompletionBlockUIImageViewCollection <__NSArrayM: ...> was mutated while being enumerated. #471SDWebImageRefreshCached download option #326SDWebImageManager delegate methods ebd63a88c1SDWebImageCacheMemoryOnly flagGCD, ARC, NSCache and blocks