Swift通過類名建立物件
OC中可以使用NSClassFromString將字串直接轉換為類名,在Swift中利用NSClassFromString不出意外結果都為nil,因為Swift中根據字串轉換的方法需要加上YourAppName,格式為”YouAPPName.類名”
寫了一個類目,具體程式碼如下:
import Foundation
import UIKit
extension NSObject {
func swiftClassFromString(className: String) -> UIViewController! {
// get the project name
if let appName: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName") as! String? {
//拼接控制器名
let classStringName = "\(appName).\(className)"
//將控制名轉換為類
let classType = NSClassFromString(classStringName) as? UIViewController.Type
if let type = classType {
let newVC = type.init()
return newVC
}
}
return nil;
}
}
呼叫:
//將控制器名轉換為類
let vc = self.swiftClassFromString(className)
self.navigationController!.pushViewController(vc, animated: true)
相關文章
- 通過字串動態建立類物件字串物件
- 通過類名動態生成物件物件
- pb通過類名稱動態構建類物件(原創)物件
- Swift:類與物件Swift物件
- objective-c 通過類名例項化類Object
- Android 通過 Intent 傳遞類物件AndroidIntent物件
- Java 中建立子類物件會建立父類物件麼?Java物件
- 通過反射獲取私有內部類物件反射物件
- 類與物件的建立物件
- [JVM]物件建立過程JVM物件
- 通過反射獲取類的類名,方法和內部成員變數反射變數
- 物件建立模式和類建立模式的區別物件模式
- swift物件導向特性——類和結構體Swift物件結構體
- #### 使用方法引用的使用場景--通過物件名引用成員方法物件
- ORACLE角色(通過DBA建立)Oracle
- java類的建立過程Java
- JavaScript 建立類/物件的幾種方式JavaScript物件
- JVM(二)——物件的建立過程JVM物件
- Unity通過子物件獲取父物件例子Unity物件
- 物件導向 -- 類的載入順序 類和物件的名稱空間物件
- c# 通過建構函式及傳入類物件方法引數來複制物件C#函式物件
- 建立獲取Springbean物件工具類SpringBean物件
- 根據包名,在指定空間中建立物件物件
- swift中的名稱空間及動態載入類Swift
- JavaScript 通過class獲取元素物件JavaScript物件
- 通過射線讓物件移動物件
- [譯] Swift:通過示例避免記憶體洩漏Swift記憶體
- 2.3 通過DBCA建立資料庫資料庫
- 通過Go來分析和建立XMLGoXML
- C# 通過反射建立例項C#反射
- Maven通過命令建立web專案MavenWeb
- 通過oracle dbms_job建立tableOracle
- 如何通過程式來查詢表名
- 關於類的物件建立與初始化物件
- 3、Spring Cloud Rest工程建立(通過IDEA建立)SpringCloudRESTIdea
- 章10——物件導向程式設計(高階部分)——類名類方法物件程式設計
- Grails通過sessionId獲取session物件AISession物件
- Swift開發---UITextView通過鍵盤Return回收鍵盤SwiftUITextView