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
构建项目。这解决了我的问题。
下面的代码是我的观点,我在乱搞核心数据,但它一直给我错误,它无法在范围内找到实体,但应用程序运行良好,所有内容都得到了保存和获取.
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
构建项目。这解决了我的问题。