web-dev-qa-db-ja.com

このファイルでプレビューできません - [アプリ名] .appがXcode 11 Beta 5でクラッシュした可能性があります。

EnviromentObjectプロパティラッパーを追加すると、Xcodeのプレビューは機能しません。キャンバスが構築されず、このエラーが表示されないたびに

このファイルでプレビューできません - [アプリ名] .appがクラッシュした可能性があります

EnviromentObjectプロパティラッパーをObservedObjectに置き換えて、すべてがうまく機能します。

これが私のコードです:

class NetworkManager: ObservableObject {

}

struct ContentView : View {
    @EnvironmentObject var networkManager: NetworkManager

    var body: some View {
        Text("Canvas not working")
    }
}

#if DEBUG
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView().environmentObject(NetworkManager())
    }
}
#endif
 _

アップデート:

バインディングを使用している場合はプレビューもロードされません。

struct ContentView : View {
    @EnvironmentObject var networkManager: NetworkManager
    @Binding var test123: String

    var body: some View {
        Text("Canvas not working")
    }
}

#if DEBUG
struct ContentView_Previews: PreviewProvider {
    @State static var test1 = ""
    static var previews: some View {
        ContentView(test123: $test1).environmentObject(NetworkManager())
    }
}
#endif
 _
8
SwiftiSwift

Xcodeの問題のように見えます。 「もう一度試す」の代わりに青いボタンを使用してみてください。 enter image description here

1

私は同じ問題を抱えていました、そして私はその理由が何であるかを見つけました。プレビュー部分の.environmentObject() [function()] _をContentView()に追加するのを忘れました。

struct Content_Previews: PreviewProvider {
    static var previews: some View {
       ContentView().environmentObject(NetworkManager())
    }
}
 _

それがコード間違いを示さずにXcodeが構築されたのは、キャンバスのプレビューに衝突しました。 - 簡単な間違い、私は知っています。

0
Timon