RxSwift中监听对象属性改变的方式小结:rx_obrve,PublishSubje。。。

更新时间:2023-07-25 04:36:34 阅读: 评论:0

成衣制作RxSwift中监听对象属性改变的⽅式⼩结:kitty是什么意思
rx_obrve,PublishSubje。。。
⽇常开发中,我们经常都要去观察⼀个对象属性的改变,那么我们怎么去监听它⽐较好呢?
我们的选择还是蛮多的,不过这⾥我们仅讨论 RxSwift 世界中的⽅案。
rx_obrve
我们⾸先就会发现 rx_obrve 这个⽅法,然后写出类似下⾯的代码:
viewModel
.rx_obrve(Int.lf, "intVar")
.subscribeNext { [weak lf] (value) in
}
.addDisposableTo(dispoBag)
预定英文
我是很不喜欢这个⽅案的,因为它严重依赖属性名字的字符串,这是很不安全的做法,⽐较容易写错,变量更名的时候也很头疼。如果不是监听我们不能改变的代码,建议不要⽤这个⽅案。
PublishSubject
如果您也⽤过 ReactiveCocoa,桥接过⾮ RAC 世界的东西到 RAC 世界,那么您⼀定知道 Subject,显然 RxSwift 中也有 Subject.
配合 Swift 的 didSet,我们可以写出如下代码:
var intVar: Int {
didSet {
_Next(intVar)
}
地点副词}
var rx_intVar: Obrvable<Int> {
return _rx_intVar.asObrvable()
}
private var _rx_intVar = PublishSubject<Int>()
这个⽅案⽐上⼀个⽅案好多了,没有硬编码的字符串(属性名),但似乎看起来很啰嗦(确实也是如此)。
Variable
其实 RxSwift 还给了我们⼀个⽅便的⽅案,那就是 Variable,我们来看看怎么写:
var rx_intVar: Variable<Int> = Variable(0)好奇心英文
var intVar: Int {
思思老师fra是哪个国家的缩写get {
return rx_intVar.value
}
石家庄教育网t {
rx_intVar.value = newValue
满分
}
}
memorial显然这是我最喜欢的⽅案,⽰例中的 intVar 在外界看起来跟没有⽤ RxSwift 的时候没有什么差别,同时我们还能通过 rx_intVar 监听它的变化,⼜没有硬编码字符串依赖。

本文发布于:2023-07-25 04:36:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/187992.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:属性   没有   改变   监听   字符串
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图