ios - 在 ChildView 中预览核心数据实体

标签 ios swift xcode core-data swiftui

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

相关文章:

ios - 重新加载 uitableviewcell 时随机滚动,iOs/Swift

ios - 我可以将一个标签固定在另一个标签内以创建边框吗?

iphone - 在Xcode中,哪种音频文件类型可以无缝循环?

ios - 无法在 XCode 中存档 react-native 项目以使用 Pod 进行暂存配置

iOS 如何确定 UILabel 是否更改了它的文本

ios - 解析 : PFObject is loaded without Attributes

ios - 为什么需要在公共(public)访问控制 viewController 中重写 viewDidLoad 之前设置 public

objective-c - NSUserDefaults 正确存储 NSDate,然后在第二次检索后返回 null

iOS 8 永远运行应用程序或禁用屏幕

swift - 如何使用 Swift 在 Firebase 中存储自定义对象?