调用一个动态获得的 Class 的初始化 protocol 实例方法

问题

标题有点绕,其实就是把:

  1. 通过 runtime 根据字符串获得某个 Class,用这个 Class 创建且初始化一个实例。
  2. 某个类实现了一个 protocol,这个 protocol 定义了某个自定义的 init 方法,创建出来的实例需要通过这个 init 方法来初始化。

这两种需求结合在一起。准确来说就是通过 runtime 获得了一个实现了某个 protocol 的 Class,现在创建这个 Class 的一个实例并且调用 protocol 的 init 方法来初始化。上面两个需求,单独一个都能很简单地完成,然而结合在一起之后就不是那么简单了。