如何将FetchedResults<CDItem>作为Binding映射并传递到内部视图,即UIKit包装器,以避免在外部更改时重新创建内部视图?
简单样本:
struct CollectionView: UIViewRepresentable {
@Binding
var items: [Item] // array of structs which are core data entities representation
...
}
struct ItemsView: View {
@FetchRequest(fetchRequest: CDItem.fetchReuqest)
var items: FetchedResults<CDItem>
var body: some View {
CollectionView(items: /* ??? */)
}
}我的第一个想法是-制作一些带有NSFetchedResultsController的NSFetchedResultsController,用NSFetchedResultsControllerDelegate更新一些@Published变量,然后使用简单的方法将其转换为绑定。但是我想用像@FetchRequest这样的糖
发布于 2022-05-30 15:07:13
根据定义,@Binding是双向连接,@FetchRequest和NSFetchedResultsController不是双向连接.
如果您需要从商店传递items,请使用
let items: [CDItem]或
let items: [Item] 如果你在抽象化。
影响@FetchRequest和NSFetchedResultsController的唯一方法是对商店进行更改。他们总是在听。
https://stackoverflow.com/questions/72431174
复制相似问题