如何将此 NSClassFromString 代码转换为 Swift?

Posted

技术标签:

【中文标题】如何将此 NSClassFromString 代码转换为 Swift?【英文标题】:How to convert this code of NSClassFromString to Swift? 【发布时间】:2015-04-20 07:02:42 【问题描述】:
UIViewController *viewController = [[NSClassFromString(viewControllerName) alloc] init];

如何将NSClassFromString的这段代码转换为swift

【问题讨论】:

【参考方案1】:

你可以这样写:

if let viewController = NSClassFromString(viewControllerName) as? UIViewController.Type 
   // Do something 

【讨论】:

NSClassFromString 不适用于 Swift 类。在这种情况下,您必须使用完整的限定名称,例如 AppName.ClassName。看看这个链接:***.com/questions/24570345/… @HoaParis 是的,当然,但是它适用于从 NSObject 继承的类(这就是 UIViewController 会起作用的原因)。 该代码返回类类型,而不是实例。您仍然需要在类类型上调用 init()。

以上是关于如何将此 NSClassFromString 代码转换为 Swift?的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2.1 中的 NSClassFromString

由 NSClassFromString 产生的类与头文件中定义的类不相关

OC中NSClassFromString()与NSStringFromClass()的用法及应用场景

用NSClassFromString得到的class怎么调用那个类的类方法

插件与App的跳转,及路由的关系

如何将此 Java 代码转换为 kotlin 代码