如何在SwiftUI中附加到数组?

如何在SwiftUI中附加到数组?,swift,apple-watch,environment,swiftui,watchos,Swift,Apple Watch,Environment,Swiftui,Watchos,在SwiftUI中追加到数组时遇到问题 我使用的是Xcode 11 beta 7,使用的是更新后的observeObject、EnvironmentObject和在watchOS应用程序上发布的语法WKHostingController需要具体类型,因此无法传递ContentView().environmentObject(subject) 此行使应用程序崩溃: self.subjectData.store.append(Subject(名称:self.addedSubject,isFavori

在SwiftUI中追加到数组时遇到问题

我使用的是Xcode 11 beta 7,使用的是更新后的
observeObject
EnvironmentObject
在watchOS应用程序上发布的
语法
WKHostingControlle
r需要具体类型,因此无法传递
ContentView().environmentObject(subject)

此行使应用程序崩溃:

self.subjectData.store.append(Subject(名称:self.addedSubject,isFavorite:false))
有什么问题吗

struct主题:可编码、可识别{
变量id:UUID=UUID()
变量名称:String
我最喜欢的:布尔
}
类SubjectDataEnv:observeObject{
@已发布的变量存储=[
主题(名称:“物理学”,最喜欢:真),
主题(名称:“科学”,isFavorite:false)
]
@已发布变量selectedSubject=Subject(名称:“Subject 1”,isFavorite:false)
}
类HostingController:WKHostingController{
覆盖变量主体:ContentView{
返回ContentView()
}
}
结构ContentView:View{
@状态变量subjectData=SubjectDataEnv()
var body:一些观点{
SubjectView().environmentObject(subjectData)
}
}
结构主体视图:视图{
@环境对象变量subjectData:SubjectDataEnv
var body:一些观点{
名单{
ForEach(subjectData.store){subject in
NavigationLink(目标:DurationView()
.environmentObject(self.subjectData)
)
}
导航链接(目标:AddSubjectView()
.environmentObject(self.subjectData)
) {
文本(“+”)
}
}
}
}
结构AddSubjectView:视图{
@环境对象变量subjectData:SubjectDataEnv
@State var addedSubject:String=“subject”
var body:一些观点{
VStack(对齐:。前导,间距:0){
TextField(“添加主题”,text:$addedSubject)
按钮(操作:{
self.subjectData.store.append(Subject(名称:self.addedSubject,isFavorite:false))//使应用程序崩溃
}) {
文本(“完成”)
}
}
}
}

有两种可能的方法:

  • 使用AnyView
  • class HostingController:WKHostingController

    这是输出(我在按钮中附加了一个
    print
    ):

    主题(id:2F3745EE-752B-4C8C-8A4F-8C21E73B315C,名称:“物理学”,isFavorite:true)
    受试者(id:5A9CF711-F6BE-4854-8F58-35FD004B2419,名称:“科学”,isFavorite:false)
    
    主题(id:E2F6A25E-3BC0-4D17-9AEF-07286533D475,姓名:“您还可以发布您面临的错误消息吗?我不太了解调试器,但这就是我看到的。SwiftUI`SwiftUI.UIKitNavigationBridge。(推入F34561696EA75D1F4200D7666E5E588)(:SwiftUI.NavigationDestinationContent,到:u C.UINavigationController,动画:Swift.Bool)->():给定WKHostingController需要一个具体类型,我无法执行以下ContentView().environmentObject(UserData())(re:)所以我试着在那个答案中解决这个问题。@Env与iPhone应用程序配合使用,所以我没有问题。明白了。我更新了我的答案,请再看一看。我添加了更多的代码。缩短的版本也适用于我。Hmmm。它与WK/Env元素无关。我是通过“父视图”方法注入@EnvironmentObject的-这不是上面更新了。谢谢。
    print(self.subjectData.store)