SwiftUI @Binding预览崩溃:与应用程序的通信被中断

Ngu*_*Hào 0 xcode swift swiftui xcode11

因此,我有一个XCode项目,该项目具有2个.swift文件,这些文件通过SwiftUI的@Binding共享一个变量。

该项目可以很好地构建并通过模拟器运行。

但是,每当我尝试在辅助文件(从主文件接收变量)上使用“预览”时,在成功构建并显示“ MyProject.app崩溃:与应用程序的通信中断”后,崩溃。

我仍然可以通过以下方式测试项目:

  1. 使用模拟器
  2. 预览主文件(ContentView.swift)(是的,预览主文件可以正常工作)

但是,由于它在我的应用程序中需要执行多个操作才能到达辅助文件的视图,并且每次Xcode刷新时,应用程序才会重新启动,因此这确实耗费了构建和测试的时间。

这是我的声音文件代码:

import SwiftUI

struct Menu_Screen : View {
    @Binding var TapToBegin:Bool
    var body: some View {
        Button(action: {

        }) {
            Text("A Button").color(.white).frame(width: TapToBegin ? 50:0, height: TapToBegin ? 100:0).background(Color.blue).cornerRadius(10)
        }
    } }

#if DEBUG 
    struct Menu_Screen_Previews : PreviewProvider {
    @State static var BoolVariable = true
    static var previews: some View {
        Menu_Screen(TapToBegin: $BoolVariable)
    } }
#endif
Run Code Online (Sandbox Code Playgroud)

我想将预览与辅助文件一起使用,以便始终查看其视图并节省时间。任何帮助将不胜感激。

小智 10

更换

#if DEBUG 
    struct Menu_Screen_Previews : PreviewProvider {
    @State static var BoolVariable = true
    static var previews: some View {
        Menu_Screen(TapToBegin: $BoolVariable)
    } }
#endif
Run Code Online (Sandbox Code Playgroud)

#if DEBUG 
    struct Menu_Screen_Previews : PreviewProvider {

    static var previews: some View {
        Menu_Screen(TapToBegin: .constant(true))
    } }
#endif
Run Code Online (Sandbox Code Playgroud)