因此,我正在研究合并,并且出现了这个问题。

使用CurrentValueSubject(并使用currentValueSubject.value设置其值)或使用@Published var和使用$访问其发布者之间,有什么真正的区别?我的意思是,我知道一个人返回的是Subject而不是Publisher,但是我能找到的唯一真正的区别是CurrentValueSubject更加有用,因为您可以在协议(protocol)上声明它。

我真的不明白,如果我们只能使用@PublishedPassthroughSubject会如何有用,我在这里遗漏了什么吗?
请注意,这是使用UIKit的,它可能还有SwiftUI的其他用途。

谢谢你。

最佳答案

@Published是使用CurrentValueSubject更加整洁的一种快速方法。当我调试一个应用程序并查看$ paramName返回的类型时,它实际上只是一个CurrentValueSubject:

po self.$books
▿ Publisher
  ▿ subject : <CurrentValueSubject<Array<Book>, Never>: 0x6000034b8910>

我猜想使用CurrentValueSubject而不是@Published的好处可能是允许您使用错误类型?

注意:尽管现在是CurrentValueSubject,但我永远不会依赖该假设。

关于ios - CurrentValueSubject和@Published之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58676249/

10-10 18:37