美文网首页
rxSwift从零开始的代码7

rxSwift从零开始的代码7

作者: 卖毛玉的小贩 | 来源:发表于2018-02-28 14:10 被阅读0次

本次讲解最后一个subject。

这个subject是我们工作过程中因为某种需要而出来的,比如及时响应某个控件等。

根据响应式的值而出现的subject叫做Variable。

我们先定义一个Variable。

let subject =Variable<string>("swift")

string是泛型,里面可以是任意的类型,创建的时候和泛型统一即可。

接下来我们来订阅他。

注意,当我们.的时候发现展开来只有一个asObservable。

这是因为,当我们要订阅一个Variable对象的时候,要先明确使用asObservable()方法。而不像其他subject一样直接订阅。

所以应该是这样的。

那么订阅后会有东西吗?

会打印出swift。

这似乎好像和之前的没有什么差别么?

别急。

我们继续看subject开始的.的另一条属性。

有一个value在里面。

打印这个value,获取的也是一个swift

事实上,当我们要给一个Variable设置新值的时候,要明确访问它的value属性,而不是使用onNext方法。

那么直接给整个代码上上来,你知道打印是什么么?

首先第一个是1-swift是没有错的。

然后就222吗?

其实当改变value的值后,上面的订阅者也重新接收到新的222

打印出 1 - 222

接着才是最后的打印value :222

不知道你理解了没?

最后要说明的一点是,Variable只用来表达一个“响应式”值的语义,因此,它有以下两点性质。

绝不会发生.error事件。

无需手动给它发送.complete事件表示完成。

那么到此,subject的四种机制已经彻底讲完,接下来我们实际去app上看看如何使用呢。

相关文章

网友评论

      本文标题:rxSwift从零开始的代码7

      本文链接:https://www.haomeiwen.com/subject/ilbbxftx.html