Swiftui 是否有更好的方法使用Combine分配数据
我正处于理解组合的开始阶段,令我惊讶的是,我居然得到了这个简单的模型。在该模型中,我只需使用.receive将数据传递给init中的.receive发布服务器。我想知道的是:Swiftui 是否有更好的方法使用Combine分配数据,swiftui,combine,Swiftui,Combine,我正处于理解组合的开始阶段,令我惊讶的是,我居然得到了这个简单的模型。在该模型中,我只需使用.receive将数据传递给init中的.receive发布服务器。我想知道的是: 是否有更好的方法实现此功能 在我添加.store()并传入Set=[]之前,所有这些都不起作用。据我所知,这是一种取消数据流的方法。但是,尽管它只是取消流,但没有它,流也无法工作。想知道我对这一点的理解是否正确,以及是否有更好的方法来实现可取消的 导入快捷界面 进口联合收割机 结构ContentView:View{ @O
导入快捷界面
进口联合收割机
结构ContentView:View{
@ObservedObject变量viewModel=SimpleViewModel()
@国家私有变量转换器=“”
var body:一些观点{
VStack{
文本字段(“输入要传递的文本”,文本:$changer)
.padding()
.textFieldStyle(RoundedBorderTextFieldStyle())
HStack(对齐:。顶部){
按钮(操作:{
viewModel.changer=self.changer
}){
文本(“更改”)
.fontWeight(.粗体)
.padding()
.foregroundColor(.白色)
.背景(颜色.蓝色)
.转弯半径(10)
}
VStack{
按钮(操作:{}){
文本(“接收”)
.fontWeight(.粗体)
.padding()
.foregroundColor(.白色)
.背景(颜色.绿色)
.转弯半径(10)
}
团体{
文本(viewModel.firstValue).bold()
文本(viewModel.secondValue).bold()
文本(viewModel.thirdValue).bold()
}.padding(.vertical)
}
}
}
}
}
结构内容视图\u预览:PreviewProvider{
静态var预览:一些视图{
ContentView()
}
}
最后一个类SimpleViewModel:observeObject{
@已发布的var changer=“”
@已发布的var firstValue=“Value#1”
@已发布var secondValue=“Value#2”
@已发布的var thirdValue=“Value#3”
私有变量CancelableSet:Set=[]
init(){
美元兑换商
.receive(打开:RunLoop.main)
.assign(给:\.firstValue,开:self)
.store(位于:&可取消集)
}
}
我假设在这种情况下,您可以使用didSet,比如
final class SimpleViewModel: ObservableObject {
@Published var changer = "" {
didSet { firstValue = changer }
}
// ... other code
}
final class SimpleViewModel: ObservableObject {
@Published var changer = "" {
didSet { firstValue = changer }
}
// ... other code
}