#import #import @protocol SCIDownloadDelegateProtocol // Methods - (void)downloadDidStart; - (void)downloadDidCancel; - (void)downloadDidProgress:(float)progress; - (void)downloadDidFinishWithError:(NSError *)error; - (void)downloadDidFinishWithFileURL:(NSURL *)fileURL; @end @interface SCIDownloadManager : NSObject // Properties @property (nonatomic, weak) id delegate; @property (nonatomic, strong) NSURLSession *session; @property (nonatomic, strong) NSURLSessionDownloadTask *task; @property (nonatomic, strong) NSString *fileExtension; // Methods - (instancetype)initWithDelegate:(id)downloadDelegate; - (void)downloadFileWithURL:(NSURL *)url fileExtension:(NSString *)fileExtension; - (void)cancelDownload; - (NSURL *)moveFileToCacheDir:(NSURL *)oldPath; @end