core-data - swiftUI核心数据模型

标签 core-data swiftui

我创建了一个 swiftUI View 并尝试显示核心数据实体,但预览失败并且应用程序在运行时崩溃。如何实例化一个 Movie 对象并将其用作 swiftUI 中的状态成员?


import SwiftUI

struct SwiftUIView: View {
    @Environment(\.managedObjectContext) private var viewContext
    @State private var movie: Movie = Movie()

    var body: some View {
        Text(movie.title ?? "empty")
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        let moc = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        SwiftUIView().environment(\.managedObjectContext, moc)
    }
}

enter image description here

最佳答案

您应该使用上下文创建 CoreData 对象,因此这是可能的方法

struct SwiftUIView: View {
    @Environment(\.managedObjectContext) private var viewContext
    @State private var movie: Movie?

    var body: some View {
        Text(movie.title ?? "empty")
           .onAppear {
              self.movie = Movie(context: viewContext)    // << here !!
           }
    }
}

关于core-data - swiftUI核心数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64278454/

相关文章:

objective-c - CoreData 编辑/覆盖对象

ios - 核心数据实体唯一约束不起作用

swift - 具有保留关键字的 CoreData NSManagedObject Swift 子类

ios - 'NSInvalidArgumentException',原因 : 'keypath Patient.nachname not found in entity <NSSQLEntity Patient id=1>'

如果操作未立即完成,则 SwiftUI View 在绑定(bind)到 @Published var 时没有动画

push-notification - SwiftUI - 当用户打开推送通知时打开特定 View

ios - SwiftUI withAnimation 内部条件不起作用

ios - 如何调整 Core Data 默认缓存的行为或大小?

swift - 处理 Combine 错误的最佳方法是什么?

ios - 符合SwiftUI中的RandomAccessCollection时下标范围超出索引