Swift NSClassFromString 类的字符串转实例

这儿主要会用到OC的NSClassFromString方法

extension String {
    
    func stringTransformClass() -> AnyClass? {
        guard let bundleName: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String else {
            return nil
        }
        let classPath = bundleName + "." + self;
        var anyClass: AnyClass? = NSClassFromString(classPath)
        if (anyClass == nil) {
            anyClass = NSClassFromString(self)
        }
        return anyClass
    }
    
}

假如我定义了个如下类:

class Person:NSObject {
    
    func study() {
        print("开始学习")
    }
}

guard let personClass = "Person".stringTransformClass() else {return}
guard let objectType = personClass as? NSObject.Type else {return}
guard let person = objectType.init() as? Person else {return}
person.study()
//打印开始学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容