@State 和 CoreData 的 SwiftUI 预览问题
Posted
技术标签:
【中文标题】@State 和 CoreData 的 SwiftUI 预览问题【英文标题】:SwiftUI Preview issue with @State and CoreData 【发布时间】:2020-07-14 15:38:43 【问题描述】:我在预览看起来很简单的结构时遇到了麻烦。 Customer 是一个 CoreData 实体:
struct CustomerDetailView: View
@Environment(\.managedObjectContext) var moc
@State var showNewCustomer = false
var customer: Customer
var body: some View
我已经尝试了几乎所有不起作用的方法,包括这个:
struct CustomerDetail_Previews: PreviewProvider
static var previews: some View
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
return
CustomerDetailView(customer: --Not sure what works here-- ).environment(\.managedObjectContext, context)
我尝试了 static let customer = Customer() 以便在最后一行使用一个客户变量,但这没有帮助。
【问题讨论】:
【参考方案1】:Preview 对应用使用不同的容器,因此您可以创建新的Customer
,例如
struct CustomerDetail_Previews: PreviewProvider
static var previews: some View
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
return
CustomerDetailView(customer: Customer(context: context))
.environment(\.managedObjectContext, context)
【讨论】:
以上是关于@State 和 CoreData 的 SwiftUI 预览问题的主要内容,如果未能解决你的问题,请参考以下文章
CoreData学习:Core Data Stack(Swift)
在 Swift 中使用 RestKit 和 CoreData