swift类 通过 NSClassFromString 获取

1.swift 版本

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

2.OC 版本

+(Class)getClassFromString:(NSString *)classString{
    
    Class anyClass = NSClassFromString(classString);
    if(anyClass == nil){
        NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
        NSString *bundleName = [infoDict objectForKey:@"CFBundleName"];
        NSString *classPath = [NSString stringWithFormat:@"%@.%@",bundleName,classString];
        anyClass = NSClassFromString(classPath);
    }
    return anyClass;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容