         return kf_setImageWithURL(URL, placeholderImage: placeholderImage, optionsInfo: nil, progressBlock: nil, completionHandler: nil)
     }
     
+    /**
+    Set an image with a URL and a named image resource file as placeholder.
+    
+    :param: URL  The URL of image.
+    :param: name The name of an image in WatchKit app bundle or the device-side cache.
+    
+    :returns: A task represents the retriving process or `nil` if device cache is used.
+    */
     public func kf_setImageWithURL(URL: NSURL,
             placeholderImageNamed name: String?) -> RetrieveImageTask?
     {

    :param: placeholderImage A placeholder image when retrieving the image at URL.
    :param: optionsInfo      A dictionary could control some behaviors. See `KingfisherOptionsInfo` for more.
    
    :returns: A task represents the retriving process.
    */
    public func kf_setImageWithURL(URL: NSURL,
                      placeholderImage: UIImage?,

            cacheInWatch = ((options & KingfisherOptions.CacheInWatchApp) != KingfisherOptions.None)
            forceRefresh = ((options & KingfisherOptions.ForceRefresh) != KingfisherOptions.None)
        } else {
            cacheInWatch = false
            forceRefresh = false
        }
        
        let imageKey: String
        if let URLString = URL.absoluteString {
            imageKey = WKInterfaceImage.kf_hashForURLString(URLString)
        } else {
            return (false, cacheInWatch)
        }
        
        if forceRefresh {
            WKInterfaceDevice.currentDevice().removeCachedImageWithName(imageKey)
        }
        
        if WKInterfaceDevice.currentDevice().cachedImages[imageKey] != nil {
            
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.setImageNamed(imageKey)
                completionHandler?(error: nil, cacheType: .Watch, imageURL: URL, cachedInWatch: true)
            })
            
            return (true, cacheInWatch)
        }
        
        return (false, cacheInWatch)
    }
    
    private func kf_retrieveImageWithURL(URL: NSURL,
        optionsInfo: KingfisherOptionsInfo?,
        cacheInWatch: Bool,
        progressBlock: DownloadProgressBlock?,
        completionHandler: WatchImageCompletionHandler?) -> RetrieveImageTask?
    {
        let task = KingfisherManager.sharedManager.retrieveImageWithURL(URL, optionsInfo: optionsInfo, progressBlock: { (receivedSize, totalSize) -> () in
            if let progressBlock = progressBlock {
