Swift 4.0學習之:動態獲取命名空間

動態獲取命名空間


前提知識點: 先說一下獲取命名空間的作用,在Swift的項目中,打印當前類的時候,會發現,相比OC,類名前多了一個命名空間。因此,在調用NSClassFromString(“”)這類方法的時候,在類名前,必須加上命名空間. 。舉個小例子如下:

//項目名稱:starProduct
//要獲取的類:AAAViewController
let aaa = NSClassFromString("starProduct.AAAViewController")

但是,命名空間在Build Settings 裏面的 Product Name 裏是可以修改的。所以,爲了保證項目的穩定性,必須要動態的獲取命名空間:

//動態獲取命名空間
let ns = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
//所以按上面的要求,可以這麼寫
let aaa = NSClassFromString(ns + ".AAAViewController")
//實際應用中,一般類名也是傳過來的,所以假設傳過來的參數名爲className。
let aaa = NSClassFromString(ns + "." + className)
發佈了68 篇原創文章 · 獲贊 96 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章