Add a convenience method to allow cancel on downloadToken
This commit is contained in:
parent
9c7224fd50
commit
3b4dd0b184
|
@ -82,9 +82,16 @@ typedef SDHTTPHeadersDictionary * _Nullable (^SDWebImageDownloaderHeadersFilterB
|
|||
/**
|
||||
* A token associated with each download. Can be used to cancel a download
|
||||
*/
|
||||
@interface SDWebImageDownloadToken : NSObject
|
||||
@interface SDWebImageDownloadToken : NSObject <SDWebImageOperation>
|
||||
|
||||
/**
|
||||
The download's URL. This should be readonly and you should not modify
|
||||
*/
|
||||
@property (nonatomic, strong, nullable) NSURL *url;
|
||||
/**
|
||||
The cancel token taken from `addHandlersForProgress:completed`. This should be readonly and you should not modify
|
||||
@note use `-[SDWebImageDownloadToken cancel]` to cancel the token
|
||||
*/
|
||||
@property (nonatomic, strong, nullable) id downloadOperationCancelToken;
|
||||
|
||||
@end
|
||||
|
|
|
@ -9,7 +9,23 @@
|
|||
#import "SDWebImageDownloader.h"
|
||||
#import "SDWebImageDownloaderOperation.h"
|
||||
|
||||
@interface SDWebImageDownloadToken ()
|
||||
|
||||
@property (nonatomic, weak, nullable) NSOperation<SDWebImageDownloaderOperationInterface> *downloadOperation;
|
||||
|
||||
@end
|
||||
|
||||
@implementation SDWebImageDownloadToken
|
||||
|
||||
- (void)cancel {
|
||||
if (self.downloadOperation) {
|
||||
SDWebImageDownloadToken *cancelToken = self.downloadOperationCancelToken;
|
||||
if (cancelToken) {
|
||||
[self.downloadOperation cancel:cancelToken];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
@ -258,6 +274,7 @@
|
|||
id downloadOperationCancelToken = [operation addHandlersForProgress:progressBlock completed:completedBlock];
|
||||
|
||||
token = [SDWebImageDownloadToken new];
|
||||
token.downloadOperation = operation;
|
||||
token.url = url;
|
||||
token.downloadOperationCancelToken = downloadOperationCancelToken;
|
||||
});
|
||||
|
|
|
@ -19,6 +19,7 @@ FOUNDATION_EXPORT NSString * _Nonnull const SDWebImageDownloadFinishNotification
|
|||
|
||||
/**
|
||||
Describes a downloader operation. If one wants to use a custom downloader op, it needs to inherit from `NSOperation` and conform to this protocol
|
||||
For the description about these methods, see `SDWebImageDownloaderOperation`
|
||||
*/
|
||||
@protocol SDWebImageDownloaderOperationInterface<NSObject>
|
||||
|
||||
|
@ -35,6 +36,8 @@ FOUNDATION_EXPORT NSString * _Nonnull const SDWebImageDownloadFinishNotification
|
|||
- (nullable NSURLCredential *)credential;
|
||||
- (void)setCredential:(nullable NSURLCredential *)value;
|
||||
|
||||
- (BOOL)cancel:(nullable id)token;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue