首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Objective-C 呼叫 Swift 完整步驟:Bridging Header 與模組導入

     編輯:關於C語言

Objective-C 呼叫 Swift 完整步驟:Bridging Header 與模組導入

在 Objective-C 專案中使用 Swift 類別,需經過 Bridging Header 橋接與 Generated Header 導入兩個關鍵步驟。

操作流程

  1. 建立 Objective-C 專案(或現有專案)。
  2. 新增 Swift 檔案:File → New → File → Swift File,命名如 SwiftTest.swift。
  3. 系統提示建立 Bridging Header:點選 Create Bridging Header,自動產生 YourProject-Bridging-Header.h。
  4. 編寫 Swift 類別(需繼承 NSObject 並標記 @objc 或 public):
import Foundation

@objc public class SwiftTest: NSObject {
    @objc func test() -> NSString {
        return "Hello from Swift!"
    }
}
  1. 編譯專案一次(Cmd+B),Xcode 產生 YourProject-Swift.h(含 Swift 介面的 Objective-C 宣告)。
  2. 在 Objective-C 中導入並使用:
// ViewController.m
#import "ViewController.h"
#import "YourProject-Swift.h" // 專案名-Swift.h

- (void)viewDidLoad {
    [super viewDidLoad];
    SwiftTest *obj = [[SwiftTest alloc] init];
    NSString *result = [obj test];
    NSLog(@"%@", result); // 輸出: Hello from Swift!
}

關鍵注意事項

項目說明
Swift 類別必須繼承 NSObject,方法/屬性加 @objc 或 public
Bridging Header用於 Swift 端引用 Objective-C 頭檔,不需手動 import Swift 檔
Generated HeaderProductModuleName-Swift.h,必須先編譯才會產生
模組名稱專案 Build Settings → Product Module Name 需為有效 C 識別符
Swift 版本Xcode 14+ 預設 Swift 5,語法相容

常見錯誤排查

  • 'YourProject-Swift.h' file not found → 未先編譯、模組名稱含特殊字元、Target 未包含 Swift 檔。
  • Use of undeclared identifier 'SwiftTest' → Swift 類別未加 @objc 或非 public。
  • 循環引用 → 避免在 Bridging Header 引用會引用 Swift 的 OC 頭檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved