See all tickets marked for the 4.4.2 release
- Ability to change the clear cache option
SDImageCacheConfig.diskCacheExpireType#2357 - Add option to enable or disable weak memory cache for
SDImageCacheviaSDImageCacheConfig.shouldUseWeakMemoryCache#2379 - Add cache control for
FLAnimatedImage, this allow user to disable memory cache for associatedFLAnimatedImageinstance #2378 - Add
diskImageDataForKey:sync API forSDImageCacheto directly get the image data from disk #2391
SDWebImageManager.runningOperationstype changed fromArraytoSet#2382- Keep the information about image's original compressed format #2390
- Fix
FLAnimatedImageView+WebCachedelayed draw due to #2047 which is now reverted #2393 - Check for nullable key when cancel image load operation #2386
- Replace
__bridge_transferwith__bridgewhen convert fromCFStringReftoNSString#2394
See all tickets marked for the 4.4.1 release
- Coder
- Fix that WebP (including Animated WebP) decoding issue on iOS 12 #2348 #2347
- Downloader
- Fix that the downloader operation may not call the completion block when requesting the same image url in race condition #2346 #2344
See all tickets marked for the 4.4.0 release
- View Category
- Add the support for watchOS to use View Category method (
sd_setImageWithURL:) on WKInterfaceImage #2343 - Add optimalFrameCacheSize && predrawingEnabled options for FLAnimatedImage #2323
- Add the support for watchOS to use View Category method (
- Cache
- Add
SDImageCacheScaleDownLargeImagesto allow cache to scale down large images if need #2281 #2273
- Add
- View Category
- Add
UIViewAnimationOptionAllowUserInteractionas default options for convenient image transition #2315
- Add
- Manager
- Replace
@synchronizedwith dispatch_semaphore_t in SDWebImageManager #2340
- Replace
- Coder
- Remove the extra calculation of image orientation for ImageIO coder #2313
- Remove the duplicated process to force decode (draw on bitmap context) in Image/IO's progressive decoding #2314
- Common
- Minor optimize for dispatch_queue_async_safe #2329
- Coder
- Fix that force decode not works for alpha-channel images #2272 #2297
- Fix WebP Encoding only works for RGBA8888 CGImage but not other color mode #2318
- Fix the thread-safe issue for coders manager #2274 #2249 #1484
- Fix the wrong declaration of NSArray generics #2260
- Fix function storeImageDataToDisk description #2301
See all tickets marked for the 4.3.3 release
- Manager
- Add cacheSerializer to allow user provide modified version of data when storing the disk cache in SDWebImageManager #2245
- Add a delegate method to control the custom logic when blocking the failed url #2246
- Project
- Enable CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF and fix warning #2242
See all tickets marked for the 4.3.2 release
- Download Operation
- Fix that iOS 8 NSURLSessionTaskPriorityHigh symbol not defined in Foundation framework and cause crash #2231 #2230
- Downloader
- Follow Apple's doc, add NSOperation only after all configuration done #2232
See all tickets marked for the 4.3.1 release
- Cache
- Fix that SDImageCacheQueryDataWhenInMemory should response cacheType to memory cache when the in-memory cache hit #2218
- Project
- Fix the macOS wrong minimum deployment target version to 10.9 #2206
- Download Operation
- Decode the image in the operation level's queue instead of URLSession delegate queue #2199
- Coder
- Create a subclass of NSBitmapImageRep to fix the GIF frame duration issue on macOS #2223
- View Category
- Expose the read write to FLAnimatedImage associate to the UIImage to allow advanced feature like placeholder #2220
- Cache
- Create a subclass of NSCache using a weak cache #2228
- Download Operation
- Improvement download operation for priority and some protect #2208
- Project
- Fix CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warning #2225
See all tickets marked for the 4.3.0 release
- View Category
- Add NSProgress API in
sd_imageProgressproperty represent the image loading progress, this allow user add KVO on it for complicated logic #2172 - Add Image Transition API in
sd_imageTransitionproperty support custom image transition after image load finished #2182 - Add NSButton WebCache category on macOS #2183
- Add NSProgress API in
- Cache
- Add query cache options for query method #2162
- Add sync version API diskImageDataExistsWithKey and diskCacheWritingOptions #2190
- Manager
- Add a option SDWebImageFromCacheOnly to load the image from cache only and prevent network #2186
- Coder
- Fix GIF loopCount when the GIF image has no Netscape 2.0 loop extension #2155
- View Category
- Fix the issue that
setAnimationImagesWithURLsweak reference may dealloc before the animated images was set #2178
- Fix the issue that
- Cache
- Fix the getSize method which use the default file manager instead of current file manager #2180
- Manager
- Fix the leak of runningOperations on race condition #2177
- Downloader
- Ensure all the session delegate completionHandler called and fix the leak when response error code below iOS 10 #2197
- Fix dispatch_sync blocking the main queue on race condition #2184
- Fix the thread-safe issue for headers mutable dictionary in downlaoder #2204
- Download Operation
- Fix that 0 pixels error should be used when width OR height is zero but not AND #2160
- Use the synchronized to access NSURLCache and try fix the potential thread-safe problem #2174
- Prefetcher
- Fix the issue that prefetcher will cause stack overflow when the input urls list is huge because of recursion function call #2196
- View Category
- Use the associate object to store the FLAnimatedImage into memory cache, avoid blinking or UIView transition #2181
- Cache
- Remove the extra memory warning notification for AutoPurgeCache #2153
- Downloader
- Avoid user accidentally invalidates the session used in shared downloader #2154
- Project
- Update the spec file to define the dependency version for libwebp #2169
See all tickets marked for the 4.2.3 release
- Add a public API to allow user to invalidate URLSession used in SDWebImageDownloader to avoid memory leak on non-singleton instance #2116
- Add a SDWebImageExternalCustomManagerKey context arguments to allow user to custom image manager for UIView category #2115
- Allow custom SDWebImageDownloaderOperation to handle HTTP redirect #2123
- Fix that FLAnimatedImageView blink and flash when collectionView reload #2102 #2106
- Fix that SDWebImagePrefetcher startPrefetchingAtIndex accident crash #2110 #2111
- Fix that Progressive WebP decoding not showing on iOS 11.2 #2130 #2131
- Fix crash in method implementation of sd_cancelImageLoadOperationWithKey, and avoid retain of operation #2113 #2125 #2132
- Fix Clang Static Analyzer warning for number nil check from Xcode 9.2 #2142 #2143
- Adopt the current requirement, change ImageIO coder's canDecodeFromHEIC to actual implementation #2146 #2138
- When store image with no data for SDImageCache, check whether it contains alpha to use PNG or JPEG format #2136
See all tickets marked for the 4.2.2 release
- Update our iOS demo to modern way, add a
UIProgressViewto show image download progress #2096
- Fix that completion block and set image block are called asynchronously for
UIView+WebCache#2093 #2097 #2092 - Fix WebP progressive decoding may do extra calculate #2095
See all tickets marked for the 4.2.1 release
- Feature refactor built-in coders and support animated webp on macOS #2082 (reusable code into
SDWebImageCoderHelper;SDWebImageFrameabstracts animated images frames)
- Fixed EXIF orientation method will crash on iOS 7 because it’s an iOS 8 above API #2082
See all tickets marked for the 4.2.0 release
- Refactor decoding code and provide decoding plugin #1991
- HEIC format support #2080 #1853 #2038
- Welcome back our previous
UIImage+GIFcategory for animated GIF! Not enabled by default. #2064 - Add the animated GIF encoding support for
SDWebImageGIFCoderonmacOS(useNSImageAPI) #2067 - Implemented
-[NSImage isGIF]method to return whether currentNSImagehas GIF representation #2071 - Allow user to provide reading options such as mapped file to improve performance in
SDImageCachedisk cache #2057 - Add progressive image load for WebP images #1991 #1987 #1986
- CI builds use Xcode 9
- Fixed our tests and improved the code coverage #2068
- Fixed lost orientation issues #1991 #2034 #2026 #1014 #1040 #815
- Fixed
UIImage(GIF) sd_animatedGIFWithDatacrash #1991 #1837 - Fixed progressive WebP height issue #2066
- Fixed
SDWebImageManager.m __destroy_helper_block_crash #2048 #1941 - Fixed cached image filename are sometimes generated with invalid path extensions #2061
- Fixed GIF performance problem #1901 by creating
FLAnimatedImageinstance on global queue #2047
- Updated diagrams
See all tickets marked for the 4.1.2 release
- Fix
SDWebImageDownloaderOperationnot calldonewhen useSDWebImageDownloaderIgnoreCachedResponse#2049 - Static
WebPdecoding little enhancement. Do not need createWebPiterator for static images #2050 - Change
finishedcheck fromequaltoequal or greater thanto protect accident condition #2051
See all tickets marked for the 4.1.1 release
- Fixed crash on
[SDWebImageDownloaderOperation reset]_block_invoke2f892f9 fixes #1883 - Fixed
SDWebImageDownloadOperationimageDatamulti-thread issue #2011 fixes #1998[SDWebImageDownloaderOperation URLSession:dataTask:didReceiveData:]crash - Fixed
CFReleaseonNULLifCGImageSourceRefcreate failed #1978 fixes #1968 #1834 #1947 - Fixed request cache policy #1994 #2032 fixes #1993 #1861 #1623 was introduced by #1737 (unit test #2031)
- Fixed
CGBitmapContextCreatebitmap memory leak #1976 replaces #1860 fixes #1974 - Fixed issue #2001, add
sd_currentBackgroundImageURLandsd_backgroundImageURLForState:forUIButton#2002 - Set
UIButtonplaceholer-image even if the url isnil#2043 fixes #1721 #1964 replaces #1790 - Use
CGImageSourceCreateIncrementalto perform progressive decoding instead of decode partial data each time from the beginning to improve performance and remove that gray background #2040 fixes #1899 - Fix SDWebImage v4 can not import libwebp framework's header files #1983 fixes #1887
- Fix unreachable code build warning on
macOS#1984
- Performance enhancement related to single
WebPand animatedWebPdecoding #1985 fixes #1999 #1885 - Use
FOUNDATION_EXPORToverextern#1977 - Move common test logic to
SDTestCase#1980 - Enabled
CLANG_WARN_STRICT_PROTOTYPES#1995 #2027 fixes #2022 - Update
macOS Demodeployment target to10.10to support build onXcode 9#2035
- Updated Manual Installation section #2030 fixes #2012
See all tickets marked for the 4.1.0 release
- add ability to change
NSURLSessionConfigurationused bySDWebImageDownloader#1891 fixes #1870 - support animated GIF on
macOS#1975 - cleanup the Swift interface by making unavailable all methods with missing params that have alternatives - see #1797 - this may cause require some changes in the Swift code
- handle
NSURLErrorNetworkConnectionLost#1767 - fixed
CFBundleVersionandCFBundleShortVersionStringnot valid for all platforms #1784 + 23a8be8 fixes #1780 - fixed
UIActivityIndicatornot always initialized on main thread #1802 + a6af214 fixes #1801 SDImageCacheConfigforward declaration changed to import #1805- making image downloading cache policy more clearer #1737
- added
@autoreleasepooltoSDImageCache.storeImage#1849 - fixed 32bit machine
long longtype transfer to NSInteger may become negative #1879 - fixed crash on multiple concurrent downloads when accessing
self.URLOperationsdictionary #1911 fixes #1909 #1950 #1835 #1838 - fixed crash due to incorrectly retained pointer to operation
selfwhich appears to create a dangled pointer #1940 fixes #1807 #1858 #1859 #1821 #1925 #1883 #1816 #1716 - fixed Swift naming collision (due to the Obj-C interface that offers multiple variants of the same method but with mixed and missing params) #1797 fixes #1764
- coding style #1971
- fixed Umbrella header warning for the FLAnimatedImage (while using Carthage) d9f7cf4 (replaces #1781) fixes #1776
- fixed issue where animated image arrays could be populated out of order (order of download) #1452
- fixed animated WebP decoding issue, including canvas size, the support for dispose method and the duration per frame #1952 (replaces #1694) fixes #1951
- #1778 #1779 #1788 #1799 b1c3bb7 (replaces #1806) 0df32ea #1847 5eb83c3 (replaces #1828) #1946 #1966
See 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
- Add an option to scale down large images #787 00bf467 efad1e5 8d1a0ae. Fixed #538, #880 and #586. This one is a more robust solution than #884 or #894. Can be activated via
SDWebImageScaleDownLargeImagesorSDWebImageDownloaderScaleDownLargeImages
- Fixed #1668 CGContextDrawImage: invalid context 0x0 - b366d84
See all tickets marked for the 4.0.0 release
- support for watchOS and OS X platforms #1595
- the
SDWebImage xcodeprojcontains 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)- the
SDWebImage Demo xcodeprojcontains the following targets:SDWebImage OSX DemoSDWebImage iOS DemoSDWebImage TV DemoSDWebImage Watch Demo
- bumped
libwepversion to0.5.1 - improved unit testing code coverage (35% -> 77%) and integrated CodeCov
- removed all deprecated methods (that we carried around for backwards compatibility in previous versions) #774
- Renamed
SDWebImageManagerdownloadImageWithURL:options:progress:completed:toloadImageWithURL:options:progress:completed:as it makes more sense, since we check the cache first and download only if needed a32a177 - Deleted targets:
SDWebImage+MKAnnotation,SDWebImage+WebP,SDWebImageFramework:SDWebImagetarget that build as a static library (all subspecs included) ->libSDWebImage.aSDWebImageiOSandSDWebImagetvOStargets that build as dynamic frameworks
- Renamed the dynamic frameworks targets from
WebImagetoSDWebImage. Renamed theWebImage.htoSDWebImage.hto match the framework naming - Renamed the schemes for consistency. Updated the Tests Podfile + project.
- For #883 Fix multiple requests for same image and then canceling one, several breaking changes were needed:
SDWebImageDownloadermethod- downloadImageWithURL:options:progress:completed:now returns aSDWebImageDownloadToken *instead ofid <SDWebImageOperation>(give the ability to cancel downloads using the returned token)SDWebImageDownloaderOperationinitializer- initWithRequest:options:progress:completed:cancelledsplit into- initWithRequest:optionsandaddHandlersForProgress:completed:. Note: there is no more cancel block
- Modern Objective-C syntax done in 64382b9 includes:
- initializers now return
instancetypeinstead ofid - explicit designated initializers (i.e. for
SDImageCache)
- initializers now return
- For #1575 GIF support using FLAnimatedImage, several changes were needed:
- replaced type
SDWebImageQueryCompletedBlockwithSDCacheQueryCompletedBlockand added anNSData *param - because of the change above, the
doneparam ofSDImageCachequeryDiskCacheForKey:done:is now aSDCacheQueryCompletedBlockand those blocks must now include anNSData *param - replaced type
SDWebImageCompletionWithFinishedBlockwithSDInternalCompletionBlockand added anNSData *param - because of the change above, the
completedparam ofSDWebImageManagerloadImageWithURL:options:progress:completed:is nowSDInternalCompletionBlockand those blocks must now include anNSData *param - for consistency with the previous change, also renamed
SDWebImageCompletionBlocktoSDExternalCompletionBlock UIImagewill no longer respond tosd_animatedGIFNamed:orsd_animatedImageByScalingAndCroppingToSize:
- replaced type
- Xcode 7 Objective-C updates (Lightweight Generics and Nullability) #1581
- breaks compatibility at least for Swift users of the framework
- watchOS and OS X support #1595 required
- renamed
SDWebImageiOS static lib target toSDWebImage iOS staticfor clarity
- renamed
- improving the unit tests code coverage #1681 required
- Refactored
NSDataImageContentTypecategory, instead of returning the contentType as a string, the new added methodsd_imageFormatForImageDatawill return aSDImageFormatenum value SDImageCacheconfiguration properties moved intoSDImageCacheConfig(which is now available viaconfigproperty):shouldDecompressImagesshouldDisableiCloudshouldCacheImagesInMemorymaxCacheAgemaxCacheSize
- The
storeImage:methods fromSDImageCachewere async already, but declared as sync. Properly marked them as async + added completion. Got rid of the recalculate param. If theNSDatais provided, use it. Otherwise, recalculate from theUIImage - Removed the synchronous methods
diskImageExistsForURL:andcachedImageExistsForURL:fromSDWebImageManager - Removed the synchronous method
diskImageExistsWithKey:fromSDImageCache - Get rid of the confusion caused by
cleanDiskandclearDiskonSDImageCache. RenamedcleanDisktodeleteOldFiles. No longer expose the syncclearDiskanddeleteOldFiles, just the async ones. - Renamed
SDImageCachequeryDiskCacheForKey:done:toqueryCacheOperationForKey:done: - Another
SDImageCacheclarification:imageFromDiskCacheForKey:used to also check the memory cache which I think is misleading. NowimageFromDiskCacheForKeyonly checks the disk cache and the new methodimageFromCacheForKeychecks both caches - Got rid of
removeImageForKey:andremoveImageForKey:fromDisk:fromSDImageCachethat looked sync but were async. Left only the 2 async ones - Removed
UIImageViewsd_cancelCurrentHighlightedImageLoad
- Refactored
- Added
sd_prefix to the activity indicator related methods (setShowActivityIndicatorView:,setIndicatorStyle:,showActivityIndicatorView,addActivityIndicator,removeActivityIndicator) #1640 - Use
dispatch_main_async_safefor all the completion blocks on the main queue (used to bedispatch_sync) - avoiding locks. - Removed
dispatch_main_sync_safeas it can be mistakenly used - Add
urlas param to progress blockSDWebImageDownloaderProgressBlock- #984
- Switched our GIF support to a better implementation: FLAnimatedImage by Flipboard #1575
- requires iOS 8+ (it's the only way due to FLAnimatedImage requirements)
- the implementation relies on a
WebCachecategory on top ofFLAnimatedImageView - details in the README
- Converted any remaining code to Modern Objective-C syntax - 64382b9
- Xcode 7 Objective-C updates (Lightweight Generics and Nullability) #1581
- via #1595 Clarified and simplified the usage of
TARGET_OS_*macros. AddedSD_MAC,SD_UIKIT,SD_IOS,SD_TV,SD_WATCH. The biggest issue here wasTARGET_OS_MACwas 1 for all platforms and we couldn't rely on it. - Replaces #1398 Allow to customise cache and image downloader instances used with
SDWebImageManager- added a new initializer (initWithCache:downloader:) 9112170 UIImageresponds tosd_imageDataandsd_imageDataAsFormat:via theMultiFormatcategory. Those methods transform aUIImageto theNSDatarepresentation 82d1f2e- Created
SDWebImageDownloaderOperationInterfaceto describe the behavior of a downloader operation. Any custom operation must conform to this protocol df3b6a5 - Refactored all the duplicate code from our
WebCachecategories into aUIViewWebCachecategory. All the other categories will make calls to this one. Customization of setting the image is done via thesetImageBlockand theoperationKeye1840c3 - Due to the change above, the activity indicator can now be added to
UIButton,MKAnnotationView,UIImageView - Animated WebP support #1438
- The shared objects (not really singletons) should allow subclassing, therefore the return type of the shared resource method should be
instancetypeand not a fixed type - c57cf7e - Allow to specify
NSURLSessionConfigurationforSDWebImageDownloader#1654 - Add
urlas param to progress blockSDWebImageDownloaderProgressBlock- #984
- Fix multiple requests for same image and then canceling one #883 + 8a78586
- Fixed #1444 and the master build thanks to @kenmaz
- Fixed an issue with the
SDWebImageDownloaderOperation:cancelInternalwas not called because of the old mechanism rellying on thethreadproperty - probably because that thread did not have a runloop. Removed that and now cancelInternal is called as expected f4bdae6 - Replaced #781 on replacing dispatch_sync with dispatch_async for the main queue 062e50a f7e8246 c77adf4 fdb8b2c 265ace4 0c47bc3. Check for main queue instead of main thread.
- Fixed #1619 iOS 10 crash (
setObjectForKey: object cannot be nil) - #1676 7940577 - Fixed #1326 #1424 (
Carthage bitcode issue) - #1593 - Fixed #1639 via #1657 (
Add support for downloading images behind redirect) - Replaced #1537 via 9cd6779 - fixed a potential retain cycle
- Updated
dispatch_main_async_safemacro in order to avoid redefinition when included as Pod - Fixed #1089 by updating the docs on the calling queue for the
progressBlock(background queue) - Fixed a compilation issue on
FLAnimatedImageView+WebCache- #1687
- Fixed #1608 #1623 #1644 Crash in
[NSURLCache cachedResponseForRequest:]- the fix is actually avoiding to accessNSURLCachewhich appears to generate a race condition. We only call it if necesarry (SDWebImageRefreshCachedis used and the image cannot be cached by the system when it's too big or behind authentication)
- SDWebImage 3.8.0 get wrong image #1589 - the issue was caused by the changes in 3.8.0 (Removed the URL query params from the filename (key) fb0cdb6d 1bf62d4 #1584 - fixes #1433 #1553 #1583 #1585) - Reverted.
- Note: The solution for those issues (i.e. #1433 #1553) is to set the
SDWebImageManagercacheKeyFilterblock and do their own calculations there.
- Had to update the iOS deployment target to 7.0 from 5 - 6545a3a
- Replace deprecated
NSURLConnectionwithNSURLSession#1578 #1586 - fixes #1291 #1318 #823 #1566 #1515 - Allow to customise cache and image downloader instances used with
SDWebImageManager86fc47bf7b - fixes #1398 #870
- Removed the URL query params from the filename (key) fb0cdb6d 1bf62d4 #1584 - fixes #1433 #1553 #1583 #1585
- Fixed the WebP build with the official 1.0.0 CocoaPods release f1a471e - fixes #1444
- Updated doc:
removeImageForKey:not synchronous e6e5c51 - fixes #1379 #1415
- Changed the libwebp git url so that people from China can access it - #1390 (from
https://chromium.googlesource.com/webm/libwebptohttps://github.com/webmproject/libwebp)
- Added
cancelAllDownloadsmethod toSDWebImageDownloader#1504 - Added API to save image
NSDatato disk cache:[SDImageCache storeImageDataToDisk:forKey:]#1453
- Fix #1449: Version 3.7.5 breaks semantic versioning (removes public API). Re-added
sd_setImageWithPreviousCachedImageWithURL:andPlaceholderImage:options:progress:completed:and deprecated it. Will remove it in 4.0.0 b40124c - Fix
CGContextDrawImage: invalid context 0x0- #1496 (fixes #1401 #1454 #1457) - Fix
CGBitmapContextCreateImage: invalid context 0x0- #1464 (fixes #1423) - Fix changed image size when loading from disk #1540 (fixes #1437)
- Repair memory release in the iPad environment #1549 (had to switch
#if TARGET_OS_IPHONEto#if TARGET_OS_IOS) - Fixed completion logic in
MKAnnotationView+WebCache#1547 - Optimize the decoder to avoid unwanted blended layer - #1527 (fixes #1524)
- Protect against malformed frame for GIFs - #1447
- updated doc: #1462 #1466 #1486 #1532 #1461
- fixed #1425 and #1426 - Continuation of Fix #1366, addresses #1350 and reverts a part of #1221 - from commit 6406d8e, the wrong usage of
dispatch_apply - fixed #1422 - Added a fallback for #976 so that if there are images saved with the old format (no extension), they can still be loaded
- bumped
libwepversion to0.4.4
- added tvOS support #1327 and #1358 - fix #1368 and #1302
- #1217 contains several of the above fixes
- fix #391 -> option to cache only on Disk. will replace #1130
- fix #343 -> iCloud backup Option
- fix #371 -> CGBitmapContextCreate: unsupported parameter combination + #1268 #1412 #1340
- fix #576 -> scale set to screen scale
- fix #1035 -> progress queue with dispatch_async
- new feature -> activity indicator using auto layout. The activity indicator feature will replace #131
- #1218 progress callbacks now report on main thread - fixes #1035
- #1321 Added a new constructor to SDWebImagePrefetcher - replaces #956
- #976 append the original path extension to the hash filename - fixes #967
- replaced #999 with #1221
- added cache tests #1125
- #1236 fixes #1203
- bf899e2 fixes #1261 #1263 compilation issue CocoaPods vs non-CocoaPods
- #1367 fixes a bug where image scale & orientation are ignored when decoding / decompressing an image
- cac21e1 fixes #1366, addresses #1350 and reverts a part of #1221 - from commit 6406d8e, the wrong usage of dispatch_apply
- #1363 fixes #1361 sd_cancelBackgroundImageLoadForState
- #1348 Create a strong ref of weakOperation in the entry of The image download subOperation, use the strong ref instead weakOperation. At the same time, repair some logic of the 'If cancelled'
- dcb7985 replaces #1345 - Load local credential file
- #1323 don't to perform download if url is "" but not nil
- #1310 Added support for SDWebImageAvoidAutoSetImage option to UIButton and highlighted UIImageView categories
- #1308 Added Swift installation tips
- 32923fa Xcode 7.1 updates
- #1297 cleaner implementation of failedUrl error handling - fixes #1275
- #1280 Fix sd_animatedImageByScalingAndCroppingToSize
- Remove logging from the image prefetcher - #1276
- Fix typos #1256 #1257 #1258 #1331 #1290
-
Adds support for iOS 8+ Framework and Carthage #1071 #1081 #1101
-
[Refactor] Use
NSMutableSetfor 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
SDWebImageAvoidAutoSetImageoption to avoid automatic image addition inUIImageViewand 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
SDWebImagePrefetcherprogressBlockwhen it has completed #1017 -
avoid warning
<Error>: ImageIO: CGImageSourceCreateWithData data parameter is nilifimageDatais nil 88ee3c6 #1018 -
allow override
diskCachePath#1041 -
Use
__typeof(self)when assigningweakreference for block #1054 -
[Refactor] Implement cache cost calculation as a inline function #1075
-
Fix parenthesis to avoid crashes #1104
-
Add
NSCachecountLimit property #1140 -
failedURLscan be removed at the appropriate time #1111 -
Purge
NSCacheon system memory notifications #1143 -
Determines at runtime is
UIApplicationis 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
WebPenabled #1178 -
fix
ImageIO: CGImageSourceCreateWithDatadata 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
- bumped
libwepversion to0.4.3
- implement
SDWebImageDownloaderAllowInvalidSSLCertificatesoption - #937 - flag to transform animated images (
SDWebImageTransformAnimatedImage) - #703 - allows user to override default
SDWebImageDownloaderOperation- #876 - adds option to decompress images and select prefetcher queue - #996
- fixed #809
cancelAllcrash - #838 - fixed #900 by adding a new flag
SD_LOG_NONEthat allows silencing the SD logs from the Prefetcher - fixed #895 unsafe setImage in
setImageWithURL:- #896 - fix
NSNotificationCenterdispatch on subthreads - #987 - fix
SDWebImageDownloaderthreading issue - #1046 - fixed duplicate failed urls are added into
failedURLs- #994 - increased default
maxConcurrentOperationCount, fixes #527 - #897 - handle empty urls
NSArray- #929 - decoding webp, depends on source image data alpha status - #936
- fix #610 display progressive jpeg issue - #840
- the code from
SDWebImageDownloaderOperation connection:didFailWithError:should match the code fromconnectionDidFinishLoading:. This fixes #872 - 7f39e5e 304 - Not ModifiedHTTP status code handling - #942- cost compute fix - #941
- initialise
kPNGSignatureDatadata - #981
- documentation updated
- fixed
sd_imageOrientationFromImageData:crash if imageSource is nil - #819 #813 #808 #828 - temporary fix - fixed
SDWebImageCombinedOperation cancelcrash (also visible asSDWebImageManager cancelAll) - 28109c4 #798 #809 - fixed duplicate symbols when using with webp via pods - #795
- fixed missing
markfrompragma mark- #827
- Add category for imageView's highlighted state
UIImageView+HighlightedWebCache- #646 #765 - Keep a reference to the image URL - #560
- Pass imageURL in completedBlock - #770
- Implemented NTLM auth support. Replaced deprecated auth challenge methods from
NSURLConnectionDelegate- #711 50c4d1d - Ability to suspend image downloaders
SDWebImageDownloader setSuspended:- #734 - Delay the loading of the placeholder image until after load - #701
- Ability to save images to cache directly - #714
- Support for image orientation - #764
- Added async
SDImageCache removeImageForKey:withCompletion:- #732 cd4b925 - Exposed cache paths - #339
- Exposed
SDWebImageManager cacheKeyForURL:- 5fd21e5 - Exposing
SDWebImageManagerinstance from theSDWebImagePrefetcherclass - 6c409cd SDWebImageManageruses the shared instance ofSDWebImageDownloader- 0772019- Refactor the cancel logic - #771 6d01e80 23874cd a6f11b3
- Added method
SDWebImageManager cachedImageExistsForURL:to check if an image exists in either the disk OR the memory cache - #644 - Added option to use the cached image instead of the placeholder for
UIImageView. Replaces #541 - #599 30f6726 - Created workspace + added unit tests target
- Updated documentation - #476 #384 #526 #376 a8f5627
- Fixed Xcode 6 builds - #741 0b47342
- Fixed
diskImageExistsWithKey:deadlock - #625 6e4fbaf For consistency, added async methods inSDWebImageManagercachedImageExistsForURL:completion:anddiskImageExistsForURL:completion: - Fixed race condition that causes cancellation of one download operation to stop a run loop that is now used for another download operation. Race is introduced through
performSelector:onThread:withObject:waitUntilDone:- #698 - Fixed race condition between operation cancelation and loading finish - 39db378 #621 #783
- Fixed race condition in SDWebImageManager if one operation is cancelled - f080e38 #699
- Fixed issue where cancelled operations aren't removed from
runningOperations- #68 - Should not add url to failedURLs when timeout, cancel and so on - #766 #707
- Fixed potential object mutated while being enumerated crash - #727 #728 (revert a threading fix from #727)
- Fixed
NSURLConnectionresponse statusCode not valid (e.g. 404), downloader never stops its runloop and hangs the operation queue - #735 - Fixed
SDWebImageRefreshCachedbug for large images - #744 - Added proper handling for
SDWebImageDownloaderLowPriority- #713 #745 - Fixed fixing potential bug when sending a nil url for UIButton+WebCache - #761 #763
- Fixed issue #529 - if the
cacheKeyFilterwas set, this was ignored when computing thescaledImageForKey. For most of the developers that did not setcacheKeyFilter, the code will work exactly the same - eb91fdd - Returning error in setImage completedBlock if the url was nil. Added
dispatch_main_async_safemacro - #505 af3e4f8 - Avoid premature completion of prefetcher if request fails - #751
- Return nil from
SDScaledImageForKeyif the input image is nil - #365 #750 - Do not load placeholder image if
SDWebImageDelayPlaceholderoption specified - #780 - Make sure we call the
startPrefetchingAtIndex:method from main queue - #694 - Save image in cache before calling completion block - #700
- Fixed arm64 warnings - #685 #720 #721 #687
- Improved logging - #721
- Added
SDWebImageCompat.mtoSDWebImage+MKAnnotationtarget
- Fix iOS 7 related issues
- Move
WebPsupport to a dedicated target - Removed strong reference to
UIImageViewwhich was causing a crash in the nested block - Fix timeout issue
- Add some methods that allow to check if an image exists on disk without taking it off disk and decompressing it first
- Add
calculateSizeWithCompletionBlock - Add multiple download of images for animationImages property of
UIImageView - Add background task for disk cleanup #306
- Fix dead thread issue on iOS 5 #444, #399, #466
- Make IO operations cancelable to fix perf issue with heavy images #462
- Fix crash
Collection <__NSArrayM: ...> was mutated while being enumerated.#471
- WebP image format support #410
- Animated GIF support #375
- Custom image cache search paths #156
- Bug fixes
SDWebImageRefreshCacheddownload option #326- New
SDWebImageManagerdelegate methods ebd63a88c1 - Fix long standing issue with alpha en JPEGs #299
- Add synchronous disk-cache loading method #297
- Fix
SDWebImageCacheMemoryOnlyflag - Bug fixes
- Complete rewrite of the library using
GCD,ARC,NSCacheand blocks - Drop compatibility with iOS 3 and 4