1. 程式人生 > >swift3.0遇到的那些坑之NSClassFromString

swift3.0遇到的那些坑之NSClassFromString

錯誤寫法:

let class_ = NSClassFromString(className)!

3.0這樣寫編譯GG思密達,查了一下需要加上你的工程名字,坑吧!

正確寫法:

全域性定義一個返回app名稱的方法

func getAPPName() -> String{
    let nameKey = "CFBundleName"
    let appName = Bundle.main.object(forInfoDictionaryKey: nameKey) as? String   //這裡也是坑,請不要翻譯oc的程式碼,而是去NSBundle類裡面看它的api
return appName! }

設定類名字

let className = getAPPName() + "." + "your className //沒錯,你沒有看錯,中間還要加一點"."

使用NSClassFromString

let class_ = NSClassFromString(className)! as! hIndexConfig.Type//hIndexConfig == your's className