ios - 如何使用 Combine 将 NSManagedObject 绑定到表/集合视图单元格?
问题描述
我有NSFetchedResultsController
一个动态表格视图。我的表格视图单元格有一个文本标签。我应该如何将对象从获取的结果控制器绑定到单元格?
在WWDC 2019 230中,有一个代码片段,其中核心数据对象绑定到视图...
if let tag = try? fetchRequest.execute().first {
nameSubscription = tag.publisher(for: \.name).assign(to: \.text, on: tagLabel)
colorSubscription = tag.publisher(for: \.color).map({ $0 as? UIColor}).assign(to: \.textColor, on: tagLabel)
}
在具有标签的单元格的表格视图控制器的上下文中,这应该发生在哪里?订阅者 ( AnyCancellable
) 应该去哪里?由于单元格的数量不定,我是否需要一组订阅者?
解决方案
我猜,像这样的绑定在详细视图的 WWDC 会话中显示。
滚动期间重复使用表格视图单元格。
这就是为什么您不应该将特定数据模型的属性更改绑定到单元格中标签的更新。
相反,您应该在控制器级别观察数据模型的更改,并在发生更改时重新加载表格视图单元格和/或部分。
推荐阅读
- flutter - 如何让视频播放器只使用屏幕高度的 50%?
- loops - Rust 如何知道何时停止在没有上限的范围内迭代?
- swiftui - 为什么 SwiftUI 没有在 RoundedRectangle 的背景上注册我的点击?
- python - 分类器中是否正确选择和使用了所有特征?
- android - 滑动显示视频中的拇指,下载整个视频
- javascript - Javascript: repeat smoothly automatic horizontal scrolling
- rust - 如何在 /usr/lib 中为 `arm-none-linux-gnueabihf`-Target 提供共享库的搜索路径?
- r - seq.default(from = min(k), to = max(k), length = nBreaks + 1) 中的错误:'from' 必须是有限数。WISH-R 封装
- sql - 接收 conn 忙于不同的查询
- python - Openpyxl不能多次写入excel文件