在表/集合视图控制器及其关联的 diffable 数据源子类之间共享数据模型的好方法是啥?
Posted
技术标签:
【中文标题】在表/集合视图控制器及其关联的 diffable 数据源子类之间共享数据模型的好方法是啥?【英文标题】:What is a good approach to sharing a data model between a table/collection view controller and its associated diffable data source subclass?在表/集合视图控制器及其关联的 diffable 数据源子类之间共享数据模型的好方法是什么? 【发布时间】:2020-10-07 09:58:14 【问题描述】:我有一个UITableViewController
,其中声明了一个模型属性。在表格视图控制器之外从UITableViewDataSource
协议一致性迁移到UITableViewDiffableDataSource
的子类时,模型不再可以在数据源中访问。
在两者之间共享数据模型的推荐方法是什么,比如在 diffable 数据源中的单元格删除委托回调可以反映模型属性和 CloudKit 数据库的变化。
【问题讨论】:
使用单例数据库管理器,您的模型对象始终处于活动状态。 【参考方案1】:我相信这完全取决于您选择的架构。 但一般假设您有 ViewModel(在 MVVM 中)或 Presenter(在 MVP/VIPER 中),您应该将模型保留在那里,然后将其绑定到 DataSource。
当删除委托被命中时,你需要在你的VM/Presenter上调用一个delete func,它会更新这个模型,将它保存到CloudKit,然后触发DataSource更新
如果您想获得更面向代码的答案,请分享您的代码示例,我很乐意为您提供帮助。
【讨论】:
以上是关于在表/集合视图控制器及其关联的 diffable 数据源子类之间共享数据模型的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章