Xcode 错误提示“使用核心数据获取请求时无法在范围内找到类型‘TestModelCoreData’,但它可以编译并运行

下面的代码是我的观点,我正在处理核心数据,但它一直给我错误,它无法在范围内找到实体,但应用程序运行良好,一切都被保存和获取得很好。

Here are screenshots of the errors it gives

import SwiftUI

struct ContentView: View {
    @Environment(.managedObjectContext) var moc
    @FetchRequest(
        entity: TestModelCoreData.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: TestModelCoreData.name, ascending: false)
        ]
    ) var entities: FetchedResults<TestModelCoreData>

    var body: some View {
        VStack {
            Text("Hello, world!").padding()

            Button(action: {
                let newEntry = TestModelCoreData(context: self.moc)
                newEntry.name = "New name"

                if self.moc.hasChanges {
                    try? self.moc.save()
                }
            }) {
                Text("Add entry")
            }

            List(entities, id: .self) { entity in
                Text(entity.name ?? "Unknown")
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
stack overflow Xcode error saying "cannot find type 'TestModelCoreData' in scope when using core data fetch request, yet it compiles and runs
原文答案

答案:

作者头像

此问题持续到XCode 12.2。这不是Coredata所独有的。它可以由例如创建扩展名,然后将该扩展名移至单独的文件。如果您的代码构建并运行,尽管迅速编译器错误“无法在范围中找到'xyz',请尝试在清除缓存,删除派生的数据等之前关闭和重新打开项目,等等。