如何在Swift 3中传递类型(of:...)的结果?

时间:2016-10-21 03:09:20

标签: reflection swift3

请考虑以下代码:

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的新实例?

0 个答案:

没有答案