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

FUN*_*ER2 11 xcode core-data swift swiftui xcode12

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

这是它给出的错误的屏幕截图

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()
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 11

我刚刚重新打开了 xCode 。

新项目的 SwiftUI 2.0 CoreData 问题 - '在范围内找不到类型'Item''

  • 天哪,太令人沮丧了 (2认同)

小智 9

从 Xcode 12.2 开始,此问题仍然存在。它不是 CoreData 独有的。它可以通过例如创建扩展名,然后将该扩展名移动到单独的文件来触发。如果您在 Swift 编译器错误“无法在范围内找到‘xyz’”的情况下编写代码并运行,请尝试在清除缓存、删除派生数据等之前关闭并重新打开您的项目。