我正在尝试使用 Xcode 11 在 SwiftUI 的 mac 应用程序中使用核心数据。
我在创建项目时勾选了“使用核心数据”。
我还创建了实体(称为 VisitedCases)并使用编辑器创建 NSManagedObject 子类文件。我还将 Codegen 设置为“手动/无”。
以下是生成的 NSManagedObject 文件中的代码:
VisitedCases+CoreDataProperties.swift
extension VisitedCases {
@nonobjc public class func fetchRequest() -> NSFetchRequest<VisitedCases> {
return NSFetchRequest<VisitedCases>(entityName: "VisitedCases")
}
@NSManaged public var caseNumber: String
}
VisitedCases+CoreDataClass.swift
@objc(VisitedCases)
public class VisitedCases: NSManagedObject {
}
我在中调用了@Environment变量和@FetchRequest内容视图.swift as:
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(entity: VisitedCases.entity(),
sortDescriptors: []
) var orders: FetchedResults<VisitedCases>
//@State vars and the rest of the code
}
但是,当我运行时,应用程序一启动就崩溃了,输出中出现以下错误:
2020-02-23 18:36:16.889306+0330 ImageSelector[17874:149503] [error] error: No NSEntityDescriptions in any model claim the NSManagedObject subclass 'VisitedCases' so +entity is confused. Have you loaded your NSManagedObjectModel yet ?
CoreData: error: No NSEntityDescriptions in any model claim the NSManagedObject subclass 'VisitedCases' so +entity is confused. Have you loaded your NSManagedObjectModel yet ?
2020-02-23 18:36:16.889389+0330 ImageSelector[17874:149503] [error] error: +[VisitedCases entity] Failed to find a unique match for an NSEntityDescription to a managed object subclass
CoreData: error: +[VisitedCases entity] Failed to find a unique match for an NSEntityDescription to a managed object subclass
2020-02-23 18:36:16.921131+0330 ImageSelector[17874:149503] executeFetchRequest:error: A fetch request must have an entity.
我还有一个将字符串保存到存储中的函数,并且似乎工作得很好:
func addCaseNumber (caseNo: String) {
guard caseNo != "" else {return}
let newCaseNumber = VisitedCases(context: self.managedObjectContext)
newCaseNumber.caseNumber = caseNo
do {
try self.managedObjectContext.save()
print("Case number saved.")
} catch {
print(error.localizedDescription)
}
}
我的代码有什么问题以及我应该如何修复它?