在Objc項目中調用Swift

以前的文字中記錄了在Swift項目中調用OC的相關代碼,比較簡單直接 傳送門 可是在OC中調用swift代碼則不是那麼的和諧,網絡上不少文章業已經有點陳舊。記錄步驟以下:html

1.建立OC項目

(1)啓動 xcode -> 建立singleView新項目 -> 命名爲: objcASwiftgit

(2)建立 NextViewController.swift 繼承於 UIViewControllerobjective-c

(3)建立 Demo.swift 繼承於 NSObjectswift

注意勾選建立 ** -Briging-Header.h文件xcode

2.ViewController.h 代碼

(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];
}

3.NextViewController.swift 代碼



此處應該注意

適當位置添加 public@objc 關鍵字,用以向objective-c暴露接口!htm

4. Demo.swift代碼 (用以驗證在objc項目中調用swift文件)

import UIKit

class Demo: NSObject {
    var name :String?;
    // oc項目中swift文件相互調用,並不須要public 和 @objc關鍵字
    func printName() -> Void {
        print(self.name)
    }
}

5.運行


至此基本完成~blog

6.總結

1 OC項目中調用Swift文件,關鍵在於項目頭文件 programName-Swift.h 的引入。繼承

2 其次在於鏈接文件 programName-Bridging-Header.h 的生成。

3 最後在swift文件的對應處添加 public @objc 等關鍵字,用以將相關方法暴露給objc。

親情連接:
簡書
博客園

相關文章
相關標籤/搜索