SwiftUI Xcode 11 beta 7 @Binding for collections 正在打破预览

Posted

技术标签:

【中文标题】SwiftUI Xcode 11 beta 7 @Binding for collections 正在打破预览【英文标题】:SwiftUI Xcode 11 beta 7 @Binding for collections is breaking preview 【发布时间】:2019-08-29 16:00:12 【问题描述】:

这在 beta 7 之前一直有效。似乎当我想将集合中的一个元素作为绑定传递到另一个视图时,预览会被破坏

我遵循了发布说明 @Binding 不再符合收集协议 comments are at the bottom

我在 beta 7 中有 Catalina 和 xcode

家长:

struct SimpleStructure 
    var label: String


struct ContentView: View 
    @State private var myVariables = [SimpleStructure(label: "hello")]

    var body: some View 
        ChildView(myVariables: $myVariables)
    


孩子

struct ChildView: View 
    @Binding var myVariables: [SimpleStructure]
    var body: some View 
        List(myVariables.indexed(), id: \.1.label) (index, variable) in
            GrandChildView(myVariable: self.$myVariables[index])
        
    

孙子

struct GrandChildView: View 
    @Binding var myVariable:SimpleStructure
    var body: some View 
        Text(myVariable.label)
    

更新:

Beta 8 仍然存在问题

【问题讨论】:

【参考方案1】:

发行说明有错字。你需要改变:

var endIndex: Index  base.startIndex 

var endIndex: Index  base.endIndex 

【讨论】:

不错的收获!修复错字后,错误似乎仍然存在。【参考方案2】:

不知道,这个问题解决了吗?如果没有,也许这会有所帮助:

struct ChildView: View 
    @Binding var myVariables: [SimpleStructure]

    var body: some View 
        List(myVariables.indices)  index in
            GrandChildView(myVariable: self.$myVariables[index])
        
    

如果已解决,请标记正确答案,或自行在此处提供解决方案,以防您在此期间找到了解决方案。

【讨论】:

使用.indices仍然无法使用【参考方案3】:

该问题已在 SwiftUI Beta 10 中得到修复

【讨论】:

以上是关于SwiftUI Xcode 11 beta 7 @Binding for collections 正在打破预览的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI dyld:找不到符号:_$s7SwiftUI7BindingVyxGAA0C11ConvertibleAAMc Xcode 11 beta 5

MR_importFromObject 方法在 XCode 7.1 beta (Swiftui 2.0) 中不起作用

如何在数组大小更改后刷新 ForEach 显示元素的数量(SwiftUI,Xcode 11 Beta 5)

未找到 SwiftUI 符号:_$s7SwiftUI9TextFieldVAA4ViewAAMc Xcode 11 beta 3

在 Xcode11 Beta 4 中将 String(format: , args) 与 SwiftUI 一起使用时出错

swiftui 请求 渲染数据