web-dev-qa-db-ja.com

SwiftUIプロジェクトでプレビューを再び機能させる方法

最近、作業中のアプリでプレビューが機能しなくなったことに気づきました。最新のXcodeとCatalina(ベータ7)を使用しています。プロジェクトに新しいビュー-TestViewを追加すると、プレビューが失敗します。これは変更なし、つまりデフォルトの「Hello World」ビューです。診断により、「TestView」は「MyProject」のメンバータイプではないことがわかります。これを修正する方法に関するアイデアはありますか?

新しいプロジェクトを作成すると、プレビューは正常に機能します。

プロジェクトは実際のデバイスまたはシミュレーターで問題なく実行されます。

完全な診断メッセージは次のとおりです:「TestView」は「MyProject」のメンバータイプではありません


failedToBuildDylib:/Users/nigelhamilton/Library/Developer/Xcode/DerivedData/MyProject-bgufjjqbmfuwcaahjswocfzmwsgx/Build/Intermediates.noindex/Previews/MyProject/Intermediates.noindex/MyProject.build/Debug-iphonesimulator/MyProject.build/Objects-normals /TestView.2.preview-thunk.Swift:23:32:エラー: 'TestView'は 'MyProject'タイプのメンバータイプではありませんエイリアス別名TestView = MyProject.TestView ~~~~~~~~~ ^/Users/nigelhamilton /ライブラリ/Developer/Xcode/DerivedData/MyProject-bgufjjqbmfuwcaahjswocfzmwsgx/Build/Intermediates.noindex/Previews/MyProject/Intermediates.noindex/MyProject.build/Debug-iphonesimulator/MyProject.build/Objects-normal/x86_64/TestView.2.preview- thunk.Swift:16:6:エラー: 'body'の置換されたアクセサーが見つかりませんでした@_dynamicReplacement(for:body)private var __preview__body:some View {^

現在、プロジェクト(または少なくともプロジェクトの複製)からコードを削除して、最終的に再度プレビューが表示されるかどうかを確認しています。私はこれで2回行ったが、最終的には機能したが、ほとんどのコードが削除された。だから私は問題がどこにあるのかを絞り込むようにしています。

8
guinnessman

私はこれを解決したと思います。私はおそらく愚かな間違いのように聞こえるものを作りました。プロジェクトはCoreDataを使用し、エンティティの1つにプロジェクトと同じ名前を付けました。奇妙に聞こえるかもしれませんが、プロジェクトは問題なくビルドおよび実行されます(シミュレーターまたはデバイス)。混乱していたのはプレビューだけでした。エンティティの名前を変更し、上記のTestViewを含む、少なくともいくつかのビューをプレビューできます。まだ正しくプレビューされていないビューがいくつかありますが、これは別の問題が原因であると思います。

12
guinnessman