私は Paul Hudson の 100 Days of SwiftUI に取り組んでおり、Project 11 で CoreData に関するイライラする問題に遭遇しました。これは、彼のビデオでコンパイルして正常に実行される Paul のコードの直接のリフトです。Bookworm.xcdatamodeld には、id という名前の UUID と name という名前の文字列という 2 つの属性を持つ Student という名前の単一のエンティティがあります。
正常にコンパイルされますが、実行すると ForEach でクラッシュが発生し、「学生」に赤の下線が引かれます。コンソールに表示されるエラー メッセージは次のとおりです。
2020-10-31 12:13:47.934507-0400 Bookworm[614:7766183] [エラー] エラー: どのモデルにも NSEntityDescriptions が NSManagedObject サブクラス 'Bookworm.Student' を要求していないため、エンティティが混乱しています。NSManagedObjectModel をロードしましたか? CoreData: エラー: どのモデルにも NSEntityDescriptions が NSManagedObject サブクラス 'Bookworm.Student' を主張していないため、エンティティが混乱しています。NSManagedObjectModel をロードしましたか? 2020-10-31 12:13:47.934651-0400 Bookworm[614:7766183] [エラー] エラー: +[Bookworm.Student entity] 管理対象オブジェクト サブクラス CoreData に対する NSEntityDescription の一意の一致が見つかりませんでした: エラー: +[ Bookworm.Student エンティティ] NSEntityDescription と管理対象オブジェクト サブクラスの一意の一致が見つかりませんでした 2020-10-31 12:13:47.953419-0400 Bookworm[614:
Xcode を単純に閉じて再度開く (ステップ 1)、プロジェクトをクリーンアップしてからステップ 1 を繰り返す、すべての派生データを削除してステップ 1 を繰り返すなど、私が見つけたすべての推奨される解決策をたくさん検索しました。確認しました。モジュールのインスペクターで現在の製品モジュールが選択されていること、および Codegen でクラス定義が選択されていること。
import SwiftUI
import CoreData
struct ContentView: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Student.entity(), sortDescriptors: []) var students: FetchedResults<Student>
var body: some View {
VStack {
List {
ForEach(students, id: \.id) { student in
Text(student.name ?? "Unknown")
}
}
}
}
}