如何映射和传递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: /* ??? */)
}
}
我的第一个想法-使一些ObservableObject
与NSFetchedResultsController
内部和更新一些@Published
变量与NSFetchedResultsControllerDelegate
,然后使用简单的方法将其转换为绑定。但我想用@FetchRequest
这样的糖
根据定义@Binding
是双向连接@FetchRequest
和NSFetchedResultsController
不是双向连接
如果你需要传递items
从存储使用
let items: [CDItem]
或
let items: [Item]
如果你在抽象。
影响@FetchRequest
和NSFetchedResultsController
的唯一方法是对store进行更改。他们总是在听。