Xcode 错误说“在使用核心数据获取请求时在范围内找不到类型 'TestModelCoreData',但它编译并运行

Xcode error saying "cannot find type 'TestModelCoreData' in scope when using core data fetch request, yet it compiles and runs

下面的代码是我的观点,我在乱搞核心数据,但它一直给我错误,它无法在范围内找到实体,但应用程序运行良好,所有内容都得到了保存和获取.

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()
    }
}

我刚刚重新打开 Xcode .

从 Xcode 12.2 开始,这个问题仍然存在。它不是 CoreData 独有的。它可以被触发,例如创建一个扩展,然后将该扩展移动到一个单独的文件。 如果您的代码构建并运行,尽管出现 Swift 编译器错误“无法在范围内找到 'xyz'”,请尝试在清除缓存之前关闭并重新打开您的项目,删除派生数据等

如果所提供的 none 解决方案似乎有效(重新启动 Xcode、重新创建项目、检查是否已添加到目标成员资格、删除派生数据等...)和尽管 IDE 警告仍然尝试使用 cmd + B 构建项目。这解决了我的问题。