0

我有一个使用 CoreData 数据库的 SwiftUI 项目,其中包含 Product 实体。它有2个属性,id和barcode。然后,我创建了一个似乎有效但会导致 [Products] 为空的获取请求。

当视图出现在屏幕上时,我收到错误

线程 1:ForEach 上的 EXC_BREAKPOINT (code=1, subcode=0x1df9bda98),没有其他信息。

我试图让它尽可能简单,但我仍然有问题。我试图完全删除 xcdatamodel 文件并重新创建它,但我一直遇到问题。

private struct ProductList: View {
@FetchRequest(
    entity: Product.entity(),
    sortDescriptors: []
) var products: FetchedResults<Product>


var body: some View {
    VStack {
        List{
            ForEach(products, id: \.id) { product in
                ProductRow(product: product)
            }
        }
    }

}

}

private struct ProductRow: View {
var product: Product

var body: some View {
    Text(product.barcode ?? "No name given")
}

}

有问题的代码的屏幕截图

4

1 回答 1

0

在使用之前@FetchRequest你必须先将一个Core Data托管对象上下文注入到环境中,否则你products的不是空的,而是nil

有关详细信息,请参阅https://github.com/andrewcbancroft/BlogIdeaList-SwiftUI/tree/master/BlogIdeaList-SwiftUI

于 2020-02-19T16:30:58.253 回答