首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
用户38192234163
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
14
文章 14
沸点 0
赞
14
返回
|
搜索文章
赞
文章( 14 )
沸点( 0 )
Combine之Operator(Debugging调试)
由于pipline是响应式的,数据是异步的,于是一般的调试手段就很难有效,为此,Combine提供了几个专门用于调试的Operator。 由上图可以看出,breakpoint的主要作用是暂停进程,注意,不是终止进程。 这3个闭包任何一个返回了true,就会触发断点,程序暂停。当…
Combine之Operator(Error Handing 错误处理)
本文主要讲解如何处理pipline中的错误。 上图已经非常明确的表达了catch的核心用法,从宏观方向来看,它捕获publisher发送的异常后返回另一个publisher,这个新的publisher的目的就是替换掉旧的publisher,pipline会继续执行。 接下来,我…
Combine之Operator(Scheduler and Thread handling 处理线程)
大家仔细观察上图可发现,receive能够改变其下游数据的接收线程,注意,它影响的是下游。 这在某些场景下是非常有用的,比如,当我们发起网络请求的时候,我们希望它是在子线程调用的,当数据回来后,我们希望在主线程来刷新UI。 由上边代码的对比可知,当使用receive切换线程后,…
Combine之Operator(Encoding and decoding 编解码)
.encode和.decode经常用于对网络响应数据的编码和解码,在真实开发中会经常用到,可以把他们理解为对数据的映射。 encode是编码的意思,在上图中,我们把Student对象编码成Json数据。.encode()接收一个参数,该参数需要实现TopLevelEncoder…
Combine之Operator(Multiple subscribers 多重订阅)
在真实的开发环境中,最常用的pipline组合为一个publisher对应一个subscriber,但也有例外,本文主要讲解一个publisher对应多个subscribers。 multicast实在是一个非常有意思的Operator,有了它,我们可以为publisher设置…
Combine之Operator(Controlling timing 时间控制)
本文主要讲解Combine中与时间相关的Operator,由于pipline是异步流,所以这些时间控制的Operator还是很强大的。 处理搜索框过于频繁发起网络请求的问题,每当用户输入一个字符的时候,都发起网络请求,会浪费一部分网络资源,通过debounce,可以实现,当用户…
Combine之Operator(Sequence operations 顺序操作)
什么叫sequence operations呢?我们都知道,pipline就像水管一样,数据在管道中流动,因此数据是有顺序的,那么这个sequence就是顺序的意思。比如,如果你只想获取水管中的最后一个数据,或者第一个数据,或者中间的某个数据,类似于这样的操作就叫做顺序操作。 …
Combine之Operator(Mathematic operations 数学运算符)
在广义上来说,对于一个pipline,我们想要的数学运算也就只有3部分,求数据集合中的最大值,最小值或者个数,至于其他更微小精准的控制,可以使用其他Operators。 .max()会等待上游publisher发送.finished事件后,把数据流中的最大值发送出去,凡是涉及到…
Combine之Operator(Matching datas 数据匹配)
Matching datas的核心思想是判断pipline的输出数据是否符合某个条件。 如上图所示,allSatisfy接受一个闭包作为参数,闭包的返回值为bool类型。只有当publisher输出的所有数据都让闭包返回true,pipline才会输出true。 值得注意的是,…
Combine之Operator(Mixing datas 数据合并)
数据成组即是优点也是缺点,优点就不多说了,缺点是,如果数据不能成组就不会输出数据。正常代码如下: 实际运行上边代码,并不会有任何输出,这就说明,如果2个publisher中,有任何一个没有数据,pipline就不会输出数据。 可以看出,即使second publisher发送了…
下一页
关注了
1
关注者
0
收藏集
0
关注标签
0
加入于
2025-06-10