Context
My app uses CoreData and for the first version I was just using the Class Definition as the Codegen Method for all Entities. However, since I changed it to Category / Extension, the app crashes every time a View with a @FetchedResult Property Wrapper is loaded.
Crash Message: Thread 1: "executeFetchRequest:error: A fetch request must have an entity."
Code
// MyEntity.swift
public final class MyEntity: NSManagedObject {
// ...
}
Questions
- What causes the crash and how can I resolve it?
- Is it necessary to define a new
CoreDataModel Versionwhen only changing theCodegen Method? - Is the change of the
Codegen Methodsupported byLightweight Migration?
CodePudding user response:
When creating your own subclass for a Core Data entity you must add the attribute @objc() to the declaration so that Core Data can find and use your subclass
@objc(MyEntity)
public final class MyEntity: NSManagedObject {
// ...
}
As for changing the type of codegen it will not affect the Core Data model in anyway so there is nothing that needs to be migrated.
