1、要想在oc 類中調(diào)用 Swift的類
首先要在 pch文件中添加Swift的關聯(lián)
其次弦叶,就是代碼調(diào)用了。在oc代碼中伤哺,我用的是反射機制。
NSString *className = @"ViewController";
NSString * aName = [NSBundle mainBundle].spaceName;// spaceName
className = [NSString stringWithFormat:@"%@.%@",aName,className];
UIViewController *Vc = [[NSClassFromString(className) alloc] init];
[appDelegate.mainNavigationController pushViewController:Vc animated:NO];
/// 獲取項目名(命名空間)
extension Bundle {
var spaceName: String {
return infoDictionary?["CFBundleName"] as? String ?? ""
}
}
2立莉、在Swift中調(diào)用oc的方法,需要添加 一個橋接文件蜓耻,其實就是創(chuàng)建一個頭文件,怎么創(chuàng)建這里就不細說了刹淌,有一點需要注意讥耗,更改路徑如圖二嚷往。
進入TARGETS ->Build Settings -> Packaging 中
創(chuàng)建橋接文件相關資料:http://www.reibang.com/p/7c941d274f5a
設置Defines Module為YES(不設置葛账,也可以皮仁,我之前的項目也是沒有設置)
設置 Product Module Name 菲宴,也可以不設置贷祈,默認為工程的名字喝峦。這個在后面會用到
命名規(guī)則:項目名+“-Bridging-Header”势誊,一般放在根目錄下谣蠢,如圖一:
其次,在橋接文件中 導入 你需要使用的 oc頭文件挤忙。
最后,用點語法册烈,類名.方法。就可以了婿禽。
AppUtils.clearAllData() // AppUtils是類名,clearAllData是方法名