ios - 在表/集合视图控制器及其关联的 diffable 数据源子类之间共享数据模型的好方法是什么?
问题描述
我有一个UITableViewController
在其中声明的模型属性。当从UITableViewDataSource
协议一致性迁移到UITableViewDiffableDataSource
表视图控制器外部的子类时,模型不再可以在数据源中访问。
在两者之间共享数据模型的推荐方法是什么,例如,diffable 数据源中的单元格删除委托回调可以反映模型属性和 CloudKit 数据库的变化。
解决方案
我相信这完全取决于您选择的架构。但一般假设您有 ViewModel(在 MVVM 中)或 Presenter(在 MVP/VIPER 中),您应该将模型保留在那里,然后将其绑定到 DataSource。
当删除委托被命中时,你需要在你的 VM/Presenter 上调用一个删除函数,它会更新这个模型,将它保存到 CloudKit,然后触发 DataSource 更新
如果您想获得更面向代码的答案,请分享您的代码示例,我很乐意为您提供帮助。
推荐阅读
- github - CODEOWNERS:从目录中排除组(git)
- c# - 子类抱怨父类构造函数
- django - 使用 django-reverse-admin 时如何禁用删除内联对象?
- sql - 跨多个表的列的 SQL 唯一约束
- amazon-web-services - 如何在大型 StepFunction 调用中仅显示失败的步骤?
- spring - 如何从服务类回滚事务?
- android - 调试 Android 平台/框架库的原生 C++ 代码
- android - 是否可以使用 android 内容 uri 路径创建文件?
- java - 使用 Spring webServiceTemplate 和 jaxb 库会导致 «java.lang.ref.Finalizer» 的内存泄漏
- elasticsearch - Elasticsearch 多匹配和完全匹配