【发布时间】:2020-10-09 18:22:16
【问题描述】:
我在一个对象中有一个CurrentValueSubject,我希望另一个CurrentValueSubject 复制第一个的更改。
如果不做这样的事情,我找不到轻松做到这一点的方法:
subjectA.assign(to: \.value, on: subjectB).store(in: &cancelables)
如果能够使用subjectA 初始化subjectB,那就太好了。有没有办法做这样的事情?
编辑: 例如,我认为能够执行以下操作会很棒:
let subjectB = CurrentValueSubject(from: subjectA)
【问题讨论】:
-
嗨,Andres:你能解释一下“使用subjectA初始化subjectB”是什么意思吗?如果它们总是相同的,为什么需要两个不同的主题?这里的用例是什么?谢谢
-
谢谢@matt。这是相同的值,但它来自不同的层。在我要使用的地方有不同的“意义”……
-
嗯,但您确实意识到多个订阅者可以订阅同一个 CurrentValueSubject,对吧?那么谁在乎它的含义是什么?每个订阅的管道都可以随价值随心所欲地做任何事情。
-
或者,如果您真的在两个不同的地方需要这个,那么只需将第二个设置为订阅第一个并传递值的管道。
-
是的,我知道这一点。但这更多是一个封装问题。我不想/不能公开“原始”来源。需要考虑一下
CurrentValueSubject。