gpt4 book ai didi

ios - 类型转换一个类的实例

转载 作者:搜寻专家 更新时间:2023-11-01 07:21:22 24 4
gpt4 key购买 nike

假设我有两个类:FirstViewControllerSecondViewController

self.tabBarController?.viewControllers![0] 可以是这两者之一的实例。

这个没问题:

let firstVC =  self.tabBarController?.viewControllers![0] as! FirstViewController  

但是这个给出错误“classOfVC is not a type”:

    let aVC = self.tabBarController?.viewControllers![0]        
let classOfVC = object_getClass(aVC)
let myVC = aVC as! classOfVC

有什么建议吗?

编辑:我不想使用 isKindOfClass,因为我试图避免使用 if ... else if... 并且涉及到两个以上的类。

最佳答案

类型转换运算符(as?as!)是编译时运算符。 Swift 中任何变量的类型都不能像您打算通过强制转换实现的那样是动态的。

你不能轻易避免 if letguard 等。在你的情况下,你可以进行显式转换 (as!) ,如果你知道特定索引处的 View Controller 永远不会改变。但这不是推荐的方法,通常你应该避免使用显式转换。

关于ios - 类型转换一个类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38806345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com