NSInvalidArgumentException is thrown if a nil NSURL is downloaded.

If you pass a nil URL to the SDWebImageDownloader a crash occurs because the URL is used as the key for the callbacks dictionary.

Rather than add checks for nil around all the calls in my app I figured simply bailing out of adding the callbacks and immediately calling the completed block was the most elegant solution. It should degrade nicely in the case someone passes in a nil URL.