我有一个函数,它接受一个参数vcType:UIViewController.Type,我正在尝试检查
if getTopmostViewController() is vcType {
// do stuff
}
但我错了“vcType不是类型”。我不知道问题是什么,也不知道是否有更好的方法来解决这个问题。
最佳答案
也许你想要这样的东西:
if getTopmostViewController().isKindOfClass(vcType.dynamicType) {
// do stuff
}
上面,
vcType
是某个类的实例,它正在检查getTopmostViewController()
是否返回同一个类(或子类)的实例。或者你真的想写一个这样的函数:
func doStuffIfTopMostViewControllerHasType<VCType: UIViewController>(_: VCType.Type) {
if getTopmostViewController() is VCType {
// do stuff
}
}
你这样称呼它:
doStuffIfTopMostViewControllerHasType(MyViewController.self)
注意,我传递的是
MyViewController
类本身,而不是MyViewController
的实例。关于ios - 动态类型检查困惑Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33724849/