XCode 中 Swift / Objective-C / C / C++ 混合編程

Swift 是蘋果於2014年 WWDC 發佈的一種新的用於編寫 iOS 和 OS X 應用的編程語言,可與 Objective-C / C / C++ 進行混合編程。編程


一. Objective-C 調用 C

Objective-C 是 C 的超集,因此 Objective-C 徹底兼容 C,能夠直接在 Objective-C 代碼中寫 C 代碼無需修改。swift

二. Objective-C 調用 C++

Xcode 須要源文件以 .mm 爲擴展名,這樣才能啓動編譯器的 Objective-C++ 擴展,在 .mm 文件內能夠編寫 C++ 代碼也能夠編寫 Objective-C 代碼,支持大部分的 C++ 的特性,幾乎徹底兼容 GNU C/C++。bash

三. Swift 調用 Objective-C

1.添加橋接文件

添加一個新的頭文件到工程中做爲橋接文件,建議命名爲 {project_name}-Bridging-Header.h,這裏我命名爲 SwiftMixedDemo-Bridging-Header.h,如圖所示:編程語言

1.png

2.設置 Objective-C Bridging Header

選中工程名,切換到 Build Settings 選項卡,選中 All,在右上角的搜索欄中輸入 bridging 找到 Objective-C Bridging Header 一項,並將其設爲 {project_name}/{project_name}-Bridging-Header.h,這裏我設爲 SwiftMixedDemo/SwiftMixedDemo-Bridging-Header.h,如圖所示:post

2.png

3.添加 Objective-C 文件

將須要引入的 Objective-C 文件添加到項目,而後將相應的頭文件添加到橋接文件 SwiftMixedDemo-Bridging-Header.h 中:ui

3.png

接下來便可正常調用 Objective-C 文件中的代碼。spa

4.Swift 調用 C/C++

而且 Swift 不能直接調用 C/C++,但能夠經過調用 Objective-C 代碼的方式間接調用 C/C++。code

四. Objective-C 調用 Swift

唔,只要在須要調用的地方引用以下頭文件便可:cdn

#import "{project_name}-Swift.h"
複製代碼

不過須要注意的是,Swift 4 的 @objc 推斷默認是關閉的,須要暴露給 OC 的話,須要手動在類或屬性或方法名前添加 @objc 標識。blog


PS:{project_name} 代指工程名。

以上。


若有任何知識產權、版權問題或理論錯誤,還請指正。 https://juejin.im/post/5a321373f265da432241371a 轉載請註明原做者及以上信息。

相關文章
相關標籤/搜索