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

self圖片.png
只能自己書(shū)寫(xiě) 將“-”換成“_”.
----------swift繼續(xù)填坑--------