Kingfisher Documentation

Protocol Async​Image​Download​Request​Modifier

public protocol AsyncImageDownloadRequestModifier  

Represents and wraps a method for modifying request before an image download request starts in an asynchronous way.

%131 AsyncImageDownloadRequestModifier AsyncImageDownloadRequestModifier ImageDownloadRequestModifier ImageDownloadRequestModifier ImageDownloadRequestModifier->AsyncImageDownloadRequestModifier

Types Conforming to Async​Image​Download​Request​Modifier


Represents and wraps a method for modifying request before an image download request starts.



func modified(for request: URLRequest, reportModified: @escaping (URLRequest?) -> Void) 

This method will be called just before the request being sent. This is the last chance you can modify the image download request. You can modify the request for some customizing purpose, such as adding auth token to the header, do basic HTTP auth or something like url mapping. When you have done with the modification, call the reportModified block with the modified request and the data download will happen with this request.

Usually, you pass an AsyncImageDownloadRequestModifier as the associated value of KingfisherOptionsInfoItem.requestModifier and use it as the options parameter in related methods.

If you do nothing with the input request and return it as is, a downloading process will start with it.


request URLRequest

The input request contains necessary information like url. This request is generated according to your resource url as a GET request.

report​Modified @escaping (URLRequest?) -> Void

The callback block you need to call after the asynchronous modifying done.


var onDownloadTaskStarted: ((DownloadTask?) -> Void)?  

A block will be called when the download task started.

If an AsyncImageDownloadRequestModifier and the asynchronous modification happens before the download, the related download method will not return a valid DownloadTask value. Instead, you can get one from this method.