我有以下 TransactionsListView.swift 的 PreviewProvider 代码:
struct TransactionsListView_Previews: PreviewProvider {
static var previews: some View {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let transaction = NPTransaction(context: context)
transaction.date = Date()
transaction.income = true
transaction.type = "morning"
transaction.value = 1200
transaction.notes = "notes"
return TransactionsListView(filter: true, startDate: Date()).environment(\.managedObjectContext, context)
}
}
预览未显示。有提示Build Succeeded,没有错误信息,但是Canvas是空的。我做错了什么?
P.s.我正在使用 CoreData,并且有 1 个名为 NPTransaction 的实体,它有 5 个属性:日期、收入、注释、类型、值。
最佳答案
由于 Xcode 没有给我任何错误,所以不容易猜测。我需要在预览中将addingTimeInterval 添加到Date() 中。工作代码:
结构 TransactionsListView_Previews:PreviewProvider {
static var previews: some View {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let transaction = NPTransaction(context: context)
transaction.date = Date()
transaction.income = true
transaction.type = "morning"
transaction.value = 1200
transaction.notes = "notes"
return TransactionsListView(filter: true, startDate: Date().addingTimeInterval(-86400 * 30)).environment(\.managedObjectContext, context)
}
}
感谢@CranialDev,他在这里帮助了我:https://stackoverflow.com/a/59970329/12315994
关于ios - SwiftUI 预览不显示(无错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59675890/