我创建了一个swiftUI视图并尝试显示核心数据实体,但是预览失败,并且应用程序在运行时崩溃。如何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)
}
}
您应该使用上下文创建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 !!
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句