【发布时间】:2021-03-24 02:43:48
【问题描述】:
在使用 Core Data 运行我的 SwiftUI 应用程序时,我不断收到以下错误。
[error] error: No NSEntityDescriptions in any model claim the NSManagedObject subclass 'Movie' so +entity is confused. Have you loaded your NSManagedObjectModel yet ?
在我的 MovieAppApp 文件中,我有以下代码。
var body: some Scene {
WindowGroup {
MoviesScreen().environment(\.managedObjectContext, CoreDataManager.shared.viewContext)
}
}
最后,在 MoviesScreen 中,我使用了@FetchRequest,如下所示:
struct MoviesScreen: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(entity: Movie.entity(), sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)])
var movies: FetchedResults<Movie>
var body: some View {
List(movies, id: \.self) { movie in
Text(movie.title ?? "")
}
}
}
CoreDataManager 如下图所示:
class CoreDataManager {
let persistentContainer: NSPersistentContainer
static let shared = CoreDataManager()
private init() {
persistentContainer = NSPersistentContainer(name: "MovieAppModel")
persistentContainer.loadPersistentStores { (description, error) in
if let error = error {
fatalError("Failed to initialize Core Data \(error)")
}
}
let directories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
print(directories[0])
}
var viewContext: NSManagedObjectContext {
return persistentContainer.viewContext
}
}
为什么我总是收到错误消息?
【问题讨论】: