在ChildView中预览核心数据实体

时间:2019-12-07 04:43:33

标签: ios swift xcode core-data swiftui

我有一个名为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'

1 个答案:

答案 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