swiftUI核心数据模型
Posted
技术标签:
【中文标题】swiftUI核心数据模型【英文标题】:swiftUI core data model 【发布时间】:2020-10-09 10:43:15 【问题描述】:我创建了一个 swiftUI 视图并尝试显示核心数据实体,但预览失败并且应用程序在运行时崩溃。 swiftUI中如何实例化Movie
对象并作为状态成员使用?
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)
【问题讨论】:
您确定要这样做吗,每次加载视图时它都会在 Core Data 中创建一个新实例? 只是演示数据预览 【参考方案1】:您应该使用上下文创建 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 !!
【讨论】:
以上是关于swiftUI核心数据模型的主要内容,如果未能解决你的问题,请参考以下文章
iOS 14 Beta - Swift UI 中的核心数据错误:任何模型中都没有 NSEntityDescriptions 声明 NSManagedObject 子类