在swift開發(fā)中垫卤,也是通過用字符串創(chuàng)建類也是通過NSClassFromString函數(shù)進行的呆细。
- NSClassFromString的返回值是AnyClass 類型在書寫的時候要標(biāo)記為可選。
2.OC中可以直接通過類名字符串創(chuàng)建類嫉拐,但是swift中需要完整的命名空間迅耘,獲取完整命名空間的方法
let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
3.然后將Anyclass類型轉(zhuǎn)變?yōu)橹付愋?br> 4.創(chuàng)建對象
具體步驟代碼如下
// 1.獲取命名空間
let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
// 2.通過命名空間和類名轉(zhuǎn)換成類
let cls:AnyClass? = NSClassFromString(clsName + "." + childControllerName)
//3將anyClass轉(zhuǎn)變?yōu)橹付愋?br> let vcType = cls as! UIViewController.Type
//4通過VCClas創(chuàng)建對象
let vc = vcType.init()
注意U莱稀!内列!
當(dāng)你的工程名字中含有“-” 例如swift-sina時用上述方法創(chuàng)建的類撵术,返回值是nil,通過打印可以看到self
只能自己書寫 將“-”換成“_”.
----------swift繼續(xù)填坑--------