PLVDownloadTaskInfo

Objective-C

@interface PLVDownloadTaskInfo : NSObject

Swift

class PLVDownloadTaskInfo : NSObject

下载任务信息模型,描述一个下载任务

基础信息

  • 下载任务的Id(自动根据url链接生成Id;若需自定义Id,可使用customModel自定义模型)

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSString *_Nonnull taskInfoId;

    Swift

    var taskInfoId: String { get }
  • Undocumented

    Declaration

    Objective-C

    @property (nonatomic, copy) NSString *fileId

    Swift

    var fileId: String { get set }
  • url

    任务下载链接

    Declaration

    Objective-C

    @property (nonatomic, copy) NSString *_Nonnull url;

    Swift

    var url: String { get set }
  • 文件保存路径

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSString *_Nonnull filePath;

    Swift

    var filePath: String { get }
  • 文件名

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSString *_Nonnull fileName;

    Swift

    var fileName: String { get }
  • 当前下载状态

    Declaration

    Objective-C

    @property (nonatomic, readonly) PLVDownloadState state;

    Swift

    var state: PLVDownloadState { get }

过程信息

  • 下载速度值(单位,KB/s)

    Declaration

    Objective-C

    @property (nonatomic, readonly) float speedValue;

    Swift

    var speedValue: Float { get }
  • 下载速度(附带单位字符串,bytes/s、KB/s、MB/s、GB/s)

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSString *_Nonnull speed;

    Swift

    var speed: String { get }
  • 下载进度值(范围,0~1)

    Declaration

    Objective-C

    @property (nonatomic, readonly) float progress;

    Swift

    var progress: Float { get }

过程详细信息

  • 已下载数据大小数值(单位,bytes)

    Declaration

    Objective-C

    @property (nonatomic, readonly) unsigned long long totalBytesWritten;

    Swift

    var totalBytesWritten: UInt64 { get }
  • 已下载数据大小(附带单位字符串,bytes、KB、MB、GB)

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSString *_Nonnull totalBytesWrittenString;

    Swift

    var totalBytesWrittenString: String { get }
  • 任务总数据大小数值(单位,bytes;可赋值,但最终以请求结果返回值为准;提前赋值的目的,是任务未开始下载时,任务总大小也不为0)

    Declaration

    Objective-C

    @property (nonatomic) unsigned long long totalBytesExpectedToWrite;

    Swift

    var totalBytesExpectedToWrite: UInt64 { get set }
  • 任务总数据大小(附带单位字符串,bytes、KB、MB、GB)

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NSString *_Nonnull totalBytesExpectedToWriteString;

    Swift

    var totalBytesExpectedToWriteString: String { get }

结果信息

  • 下载错误(若下载成功,则为nil)

    Declaration

    Objective-C

    @property (nonatomic, strong, readonly, nullable) NSError *error;

    Swift

    var error: Error? { get }

自定义信息

  • 自定义模型(该模型中可定义所需的属性;遵循协议实现方法后,数据将一并被入库保存)

    Declaration

    Objective-C

    @property (nonatomic, strong) NSObject *_Nonnull customModel;

    Swift

    var customModel: NSObject { get set }

辅助属性

  • 是否提前获取文件大小(适用于添加下载任务时,不知文件大小的场景;YES - 添加任务后即使任务未开始,也可获取到文件大小;默认NO)

    Declaration

    Objective-C

    @property (nonatomic) BOOL preGetFileSize;

    Swift

    var preGetFileSize: Bool { get set }
  • Undocumented

    Declaration

    Objective-C

    @property (nonatomic) BOOL deleteZipFileWhenUnzip

    Swift

    var deleteZipFileWhenUnzip: Bool { get set }

事件

多接收方事件

  • 添加一个Block接收 下载状态改变事件 (与上方属性Block事件,相互独立)

    Declaration

    Objective-C

    - (void)addDownloadStateChangeBlock:(nonnull PLVDownloadStateChangeBlock)block
                                    key:(nonnull NSString *)blockKey;

    Swift

    func addDownloadStateChange(_ block: @escaping PLVDownloadStateChangeBlock, key blockKey: String)

    Parameters

    block

    事件回调

    blockKey

    回调Key(不同调用方,以此字符串来区分注册)

  • 移除一个接收方 不再接收下载状态改变事件

    Declaration

    Objective-C

    - (void)removeDownloadStateChangeBlockWithKey:(nonnull NSString *)blockKey;

    Swift

    func removeDownloadStateChangeBlock(withKey blockKey: String)

    Parameters

    blockKey

    接收方,在添加事件接收时所填Key

  • 添加一个Block接收 下载完成事件 (与上方属性Block事件,相互独立)

    Declaration

    Objective-C

    - (void)addDownloadCompletedBlock:(nonnull PLVDownloadCompletedBlock)block
                                  key:(nonnull NSString *)blockKey;

    Swift

    func addDownloadCompletedBlock(_ block: @escaping PLVDownloadCompletedBlock, key blockKey: String)

    Parameters

    block

    事件回调

    blockKey

    回调Key(不同调用方,以此字符串来区分注册)

  • 移除一个接收方 不再接收下载完成事件

    Declaration

    Objective-C

    - (void)removeDownloadCompletedBlockWithKey:(nonnull NSString *)blockKey;

    Swift

    func removeDownloadCompletedBlock(withKey blockKey: String)

    Parameters

    blockKey

    接收方,在添加事件接收时所填Key