我有一个名为 ToDoItem 的核心数据实体。它有 2 个属性:createdAt(日期)和 title(字符串)。实体的 Codegen 是类定义,如下所示:
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
)
}
}
我收到错误:
Cannot convert value of type 'ToDoItem.Type' to expected argument type 'ToDoItem'
最佳答案
此代码有效:
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
关于ios - 在 ChildView 中预览核心数据实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223075/