一种使用MVVM的表格视图的POP方法。

首先是第一件事。 POP代表面向协议的编程。 POP上有很多现成的资料,因此我将不对其进行详细介绍。
MVVM代表模型视图视图模型。 这是一种设计模式,其中有类或类型,这些类或类型可以分为三类,即模型,视图和视图模型。 这是一篇很棒的文章
了解MVVM。 我选择MVVM而不是MVC(模型视图控制器),因为MVC通常会导致整体式Massive View Controller。


现在开始。 我们首先从为tableviewcellmodel定义协议开始。 tableviewcellmodel将包含该单元格的标识符。 它还将包含其他数据以配置单元。 我们还需要可以使用此tableviewcellmodel配置的tableviewcell。 因此,我们还定义了可配置单元协议。

在这里,无论我们使用POP布局的任何框架都可以通过非常干净的表视图数据源来实现。 我们创建RBConcreteTableViewController ,它是UITableViewController的子类。 它具有RBTableViewModel类型的属性tableViewModel,这意味着它可以使用符合RBTableViewModel的任何类型。 我们重写viewDidLoad()以使用tableViewModel配置tableView。 然后,我们获得了UITableViewDatasource方法的样板代码。 如您所见,该代码更加简洁。 您可以更早地跟踪错误。 我们还避免使用非常庞大的视图控制器。

通过为可配置表视图创建协议,可以出于一致性目的而改进此代码,但是您可以通过遵循上述可配置单元协议的模板来轻松实现此目的。 此处提供了此POP方法的源代码。 您可以继续改进自己的实现。

你喜欢这篇文章吗? 也许尝试以下方法之一:

  • 在Swift中使用ExpressibleByArrayLiteral简化生活
  • 驯服宽松的通知
  • 断点作为调试内容提供者
  • 在核心数据中使用可变类型作为可转换属性的危险

请提供任何反馈以进行改进。 我的TapChief个人资料如下: