首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS进度管理NSProgress类简单实用实例

引言 iOS 7 之后苹果推出了一个新的类 NSProgress 专门用来管理进度,比如在下载数据或者执行任务的时候要显示进度,那么这个类就可以很方便地对进度进行管理,供开发者拿去控制表示进度的UI界面...这个类的用法其实很简单,总结起来就是下面几个步骤: 创建实例,同时设定表示任务要完成的数量的总值(这个总值只是一个用来计算比例的概念); 配置KVO观察其进度的变化,从而对UI做出更新(NSProgress...单任务执行 直接上代码: @interface ViewController () @property (nonatomic, strong) NSProgress *progress; @end...在KVO的响应方法中,列出了三种进度表示方式,这都是原生支持的,分别对应三种显示效果,如下图: 多任务执行 所谓的多任务执行,是指 NSProgress 类可以添加多个子任务,分别占据主任务的一定比例...*sub1 = [NSProgress progressWithTotalUnitCount:10 parent:self.progress pendingUnitCount:4]; NSProgress

41710
您找到你想要的搜索结果了吗?
是的
没有找到

AFNetworking源码探究(三) —— GET请求实现之任务进度设置和通知监听

Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a...对于这些属性,NSProgress默认为符合KVO标准,并且通知始终在更新属性的线程上发送。 这些属性用于传递是否应该在进度报告用户界面中显示取消和暂停的控件。...NSProgress本身不会对这些属性做任何事情,除了帮助将进度记录的值传递给进度观察员。 在NSProgress的生命周期中,这些属性的值实际上以任何方式改变都是有效的。...当然,如果一个NSProgress可以被取消,你应该通过设置一个取消处理程序或者让你的代码轮询调用-isCancelled的结果来实现可取消性。 同样适用于pausability。...即使该方法在接收方的super类上调用,或者由于发布接收方或接收方的super类而导致的另一个进程中的NSProgress实例,也会调用该block。 您的块不会在任何特定队列上调用。

38040

AFNetworking框架分析(三)——AFURLSessionManager(下)

*uploadProgress)) uploadProgressBlock downloadProgress:(nullable void (^)(NSProgress *downloadProgress...其内部实现中设置这两个NSProgress对应的cancel、pause和resume这三个状态,正好对应session task的cancel、suspend和resume三个状态。...当task任务的进度发生变化时,KVO则更新对应的progress属性值,然后赋新值触发时会执行KVO代理中上传或者下载progress的处理,将执行对应的包含object(属性为NSProgress)...的代码块,该代码块也就是最终执行网络请求方法中progress:(void (^)(NSProgress * _Nonnull))uploadProgress位置的block代码块。...此处代码块中可根据NSProgress的状态做用户自定义的行为,比如需要更新UI进度条的状态之类等等。 ?

69820

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券