Ios SwiftUI环境对象与视图不同步

Ios SwiftUI环境对象与视图不同步,ios,swift,xcode,swiftui,Ios,Swift,Xcode,Swiftui,举一个简单的例子说明我在做什么,我有一个环境对象: 类视图模型:ObserveObject{ @已发布变量x:CGFloat=0 @已发布变量y:CGFloat=0 } 查看这些数字以调整其偏移量的视图: struct PrimaryView:View{ @环境对象变量模型:视图模型 //在视图结构内部 SomeView() .偏移量(x:model.x,y:model.y) } 另一种观点是负责改变这些数字: struct ChangeView:View{ @环境对象变量模型:视图模型 /

举一个简单的例子说明我在做什么,我有一个环境对象:

类视图模型:ObserveObject{
@已发布变量x:CGFloat=0
@已发布变量y:CGFloat=0
}
查看这些数字以调整其偏移量的视图:

struct PrimaryView:View{
@环境对象变量模型:视图模型
//在视图结构内部
SomeView()
.偏移量(x:model.x,y:model.y)
}
另一种观点是负责改变这些数字:

struct ChangeView:View{
@环境对象变量模型:视图模型
//视野之内
按钮(操作:{
开关方向条件{
案例.补充:
型号y+=10
案例.下:
模型y-=10
案例左:
型号x+=10
案例.右侧:
型号x-=10
})//为了简洁起见,请单击“结束”按钮
当我的应用程序加载时,有时它工作得很好,而另一些时候压力机一开始根本不会启动,当你再次点击它时,它就会触发

以下是我迄今为止所做的尝试。我将突变放在视图模型中,只调用导致
ChangeView
中更改的函数。我使用
DispatchQueue
异步调度这些更改。我从按钮中删除了switch语句,并手动执行这些更改。最后,我将突变放回原处在视图中查看这是否会对性能产生影响


所有这些都不起作用,所以我开始觉得这可能是苹果方面的一个bug,但我也可能做了一些完全不正确的事情。另外,是的,环境对象正确地连接到了
app.Swift中的应用程序根目录。我从
环境对象
切换到
观测对象
,并移动了子目录对我需要的每个视图进行连续的编码,现在一切都正常工作。我的猜测是,环境对象在初始加载时可能会不同步。至于原因或方式,我不确定。

这些快照不足以找到原因-需要可复制的示例进行调试。可能尝试使用@ObservedObject而不是@EnvironmentObject?@purebreadd我选择了environment,因为所需的视图位于两个不同的位置。您建议在根视图中使用ObservedObject,然后将其传递给我假设的后续视图?