iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
Mobile Development

從零開始的Swift開發心路歷程2系列 第 22

【從零開始的Swift開發心路歷程2-Day22】如何在Swift中呼叫C++函式

  • 分享至 

  • xImage
  •  

昨天講完如何在Swift中呼叫C函式,今天就來手把手教學如何在Swift中呼叫C++函式吧!

首先,新增一個C++ 檔案

命名完後一樣要將Also create a header file打勾

建立好C++ 檔案後,就來把函式及標頭檔都宣告完畢吧!

//header
class CPPTest{
public:
    void helloCPP();
};

//cpp
void CPPTest::helloCPP(){
    printf("Hello cpp!");
}

由於Swift並不能直接呼叫C++ 檔案,這時需要使用Objective-C ++ 來呼叫C++ 檔案


都建立好之後呢,要記得把建立的.m檔,副檔名改為.mm檔

並且在.mm檔中import剛剛寫好的.hpp檔

#import "ObjcTest.h"
#import "CPPTest.hpp"
@implementation ObjcTest

-(void)helloCPP{
    CPPTest cppTest;
    cppTest.helloCPP();
}

@end

在Objective-C ++ 的header檔中宣告

-(void)helloCPP;

最後,在你的Bridging Header中import Objective-C++ 的header檔,就能成功在Swift呼叫C++ 程式碼囉!

另外,還有一個不用那麼麻煩的方法,可以在你的c++檔案裡使用extern "C",但前提是你宣告的函式要在別處已被定義

extern "C" void helloCPP(){
    return CPPTest().helloCPP();
}

並且在Brigding Header裡面宣告此函式

void helloCPP();

如此一來,也可以成功呼叫C++檔案唷!還不用透過Objective-C ++來呼叫,可以節省不少麻煩(?


上一篇
【從零開始的Swift開發心路歷程2-Day21】如何在Swift中呼叫C函式
下一篇
【從零開始的Swift開發心路歷程2-Day23】SpriteKit元件介紹
系列文
從零開始的Swift開發心路歷程230
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言