请考虑以下代码:
var med: Med = Med()
var cls1 = type(of:med)
var cls2 = Med.self
var cls3: AnyClass = Med.self
var med1 = cls1.init()
var med2 = cls2.init()
var med3 = cls3.init() // Compiler: 'init' is a member of the type; use 'type(of: ...)' to initialize a new object of the same dynamic type
这样做的方式似乎在每个版本的Swift之间发生了很大变化,因此在线搜索提供了许多死胡同。
如果Med.self不是AnyClass类型,为什么编译器在设置cls3时不会抱怨?如果是AnyClass类型,为什么在设置med3时会抱怨?如何将(of:...)类型的结果传递给另一个方法来使用它?
或者简单地说,如何在Swift 3中获得AnyClass的新实例?