在swift開發中,也是通過用字符串創建類也是通過NSClassFromString函數進行的。
- NSClassFromString的返回值是AnyClass 類型在書寫的時候要標記為可選。
2.OC中可以直接通過類名字符串創建類,但是swift中需要完整的命名空間,獲取完整命名空間的方法
let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
3.然后將Anyclass類型轉變為指定類型
4.創建對象
具體步驟代碼如下
// 1.獲取命名空間
let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
// 2.通過命名空間和類名轉換成類
let cls:AnyClass? = NSClassFromString(clsName + "." + childControllerName)
//3將anyClass轉變為指定類型
let vcType = cls as! UIViewController.Type
//4通過VCClas創建對象
let vc = vcType.init()
注意!!!
當你的工程名字中含有“-” 例如swift-sina時用上述方法創建的類,返回值是nil,通過打印可以看到self
self圖片.png
只能自己書寫 將“-”換成“_”.
----------swift繼續填坑--------