如何将AnyClass转换为特定的类并在Swift中动态初始化?

如何将AnyClass转换为特定的类并在Swift中动态初始化?,第1张

概述在Object-C中,我将Class对象存储在数组中,并按如下方式动态初始化: self.controllers=@[[OneViewController class],[TwoViewController class]];Class clz = self.controllers[index];UIViewController *detailViewController = [[clz all 在Object-C中,我将Class对象存储在数组中,并按如下方式动态初始化:
self.controllers=@[[OneVIEwController class],[TwoVIEwController class]];Class clz = self.controllers[index];UIVIEwController *detailVIEwController = [[clz alloc] init];

在Swift我尝试这种方式,但它引发一个错误:

var controllers:AnyClass[] = [OneVIEwController.self,TwoVIEwController.self]var clz : AnyClass = controllers[index]var instance = clz() // Error:'AnyObject' is not constructible with ()

我不知道是否有一种方法来将AnyClass转换为特定的类?
还是任何其他好的想法?

你可以指定数组为普通超类的类型,然后类型deduction做正确的事情(Beta-3语法):
let classArray: [UIVIEwController.Type] = [    OneVIEwController.self,TwoVIEwController.self]let controllerClass = classArray[index]let controller = controllerClass()
总结

以上是内存溢出为你收集整理的如何将AnyClass转换为特定的类并在Swift中动态初始化?全部内容,希望文章能够帮你解决如何将AnyClass转换为特定的类并在Swift中动态初始化?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1058965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存