我有一个名为ToDoItem的核心数据实体。它具有2个属性:createdAt(日期)和title(字符串)。实体的代码生成为类定义,如下所示:
import Foundation
import CoreData
public class ToDoItem: NSManagedObject {
}
我正在使用ForEach列表中的以下代码将此实体传递给ChildView:
NavigationLink(destination: ChildView(todoItem: todoItem))
在ChildView中,我有:
var todoItem: ToDoItem
在ChildView中预览的正确代码是什么?我尝试了以下方法,但不起作用:
struct ChildView_Previews: PreviewProvider {
static var previews: some View {
ChildView(
todoItem: ToDoItem
)
}
}
我遇到错误:
无法将类型“ ToDoItem.Type”的值转换为预期的参数类型 'ToDoItem'
答案 0 :(得分:0)
此代码有效:
struct ChildView_Previews: PreviewProvider {
static var previews: some View {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
//Test data
let todoItem = ToDoItem.init(context: context)
todoItem.createdAt = Date()
todoItem.title = "Title"
return ChildView(todoItem: todoItem).environment(\.managedObjectContext, context)
}
}
帮助我的是Don Nissen的回答,他在此处发布了他的代码: SwiftUI Preview canvas and Core Data