在下面的例子中是stateClass: AnyClass
一个类的实际实例,例如我可以调用它来获取stateClass.name
或者它只是对类类型的引用。我的感觉是,从validChange
行来看,它只是对类类型的引用,而不是我可以从中提取数据的任何类的实际实例?
override func isValidNextState(stateClass: AnyClass) -> Bool {
let validChange = stateClass is MonsterAttack.Type
return validChange
}
最佳答案
AnyClass
定义如下:typealias AnyClass = AnyObject.Type
这是实际的类类型本身。因此,如果有一个名为“Test”的class
,则必须通过Test.self
,并且只能对其调用静态/类方法/属性和初始值设定项。如果要使用实际实例,请使用AnyObject
(仅适用于类)或Any
(适用于任何对象):
override func isValidNextState(stateClass: AnyObject) -> Bool {
let validChange = stateClass is MonsterAttack.Type
return validChange
}
关于swift - Swift AnyClass引用Class实例还是只是Type?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31251454/