… from blocking the main runloop when a lot of cache queries are performed at the same time
…eholder image (or nil if no placeholder) This is the recommanded way clear an image for reuse (as a UITableViewCell for instance). Calling setImageWithURL: with nil URL will have the effect to cancel an eventual currently in progress download of a thumbnail for this UIImageView. Affecting the image property directly won't have this effect and may lead to image being re-affected once download is completed.
This saves CPU and memory in all cases and alpha channel / image clearness if orignal format was PNG or GIF.
…ction (read-on to understand why) I finally found the reason behind the download not started while UITableView is manipulated: the default NSURLConnection runloop mode. Its default mode is NSEventTrackingRunLoopMode which is interrupted by UI events. Changing default NSURLConnection runloop mode to NSRunLoopCommonModes just fix this good old responsiveness issue. I thus decided to replace the current NSOperation based implementation by this finding, as NSOperation is far more expensive than simple async connections. Additionally, moving aways from NSOperation here fix an odd lagging issue with iOS 4, an issue I can't explain at the moment. Note that `SDWebImageDownloader`'s `setMaxConcurrentDownloads:` method is now a no-op as I didn't implemented the NSOperation queuing system with async connections. I don't think it still necessary as thread-less async connectaions are very lightweight. If you think there is a real need of this, I may reconsider and implement it in the future. In the meantime, this method does nothing and its usage is declared as deprecated.
…retain a returned value.
… the UIImageView and prevent duplicate downloads of the same URL The helper (now called manager) is now handling the mapping between the UIImageView and its downloader. This way we don't polute the UIImageView, and don't remove its capability to have subviews. This change removes the automatic handling of image placeholder. The placeholder image can be passed as second argument of setImageWithURL:placeholderImage: The manager now handle duplicate downloads for the same URL gracefuly by sharing the same downloader for all requestors. Finaly, the manager handles URLs which can't create an image (HTTP error or invalid format) by flagging them so it won't retry to download them again and again.
…ation even simpler
… cache to be synced back and forth in iTunes
…e behind the Simple Design (SD) team name
…nts independently + general doc enhancement
…class maintain its own operation