以前的文字中記錄了在Swift項目中調用OC的相關代碼,比較簡單直接 傳送門 可是在OC中調用swift代碼則不是那麼的和諧,網絡上不少文章業已經有點陳舊。記錄步驟以下:html
(1)啓動 xcode -> 建立singleView新項目 -> 命名爲: objcASwiftgit
(2)建立 NextViewController.swift 繼承於 UIViewControllerobjective-c
(3)建立 Demo.swift 繼承於 NSObjectswift
注意勾選建立 ** -Briging-Header.h文件xcode
(1)導入頭文件。編譯後導入,不然可能會提示錯誤;編寫時或不會自動提示代碼,屬正常狀況網絡
(2) viewcontroller 頁面建立點擊事件code
- (IBAction)demoTouchAction:(UIButton *)sender { NextViewController *next = [[NextViewController alloc]init]; //設置next subTitle 屬性 next.subTitle = @"subTitle"; // 調用 實例方法 [next sayHello]; // 頁面跳轉 [self presentViewController:next animated:YES completion:nil]; }
適當位置添加 public 和 @objc 關鍵字,用以向objective-c暴露接口!htm
import UIKit class Demo: NSObject { var name :String?; // oc項目中swift文件相互調用,並不須要public 和 @objc關鍵字 func printName() -> Void { print(self.name) } }
至此基本完成~blog
1 OC項目中調用Swift文件,關鍵在於項目頭文件 programName-Swift.h 的引入。繼承
2 其次在於鏈接文件 programName-Bridging-Header.h 的生成。
3 最後在swift文件的對應處添加 public @objc 等關鍵字,用以將相關方法暴露給objc。