在 Objective-C 中使用 C++ [关闭]

问题描述 投票:0回答:1

我正在尝试将 C++ 与 Objective-C 一起使用。我的任务迫使我只将 C++ 用于跨平台核心。目标是在不同平台上重用核心,只重写图形界面。我非常了解 Objective-C,还有一些 C++。但是,当我尝试将它们一起使用时,会出现大量错误。

例如:

CppFile.cpp

#include "ObjCFile.h"

int main() {
    ObjCFile *objCFile;
}

ObjCFile.h

#import <UIKit/UIKit.h>

@interface ObjCFile : UIViewController

- (void)showInterface;
...

对于上面的两个文件,我得到一些看似完全无关的东西的错误,例如

undefined NSString
等等。

我试图在 Google 和 StackOverflow 上寻找这个问题的答案,但我还没有找到任何有帮助的东西。我认为混合 Objective-C 和 C++ 应该很容易,所以我错过了什么?

c++ objective-c xcode objective-c++
1个回答
-1
投票

如果在组合两种语言时出现太多错误,则需要查看 C++ 文件中的

#include
。你不能
include
UIKit 或 C++ 文件中的其他特定库! XCode 变得疯狂并显示数百个错误。

要解决这个问题,您需要一个使用 Objective-C++ 的bridge。注意细节!

Bridge.hh(不包含 ObjCFile.h!

class Bridge {
    public:
    ...
    void showInterface();
}

Bridge.mm(在这里包含你的 Objective-C 头文件

#import "ObjCFile.h"

void Bridge::showInterface() {
    ObjCFile *objCFile;
    [objcFile showInterface];
}

新建 CppFile.cpp

#include "Bridge.hh"

int main() {
    Bridge *bridge;
    bridge->showInterface();
}

就是这样!

我看过的许多文章与我的文章similar但是他们omit关于XCode库的信息。 这让我很困惑。

© www.soinside.com 2019 - 2024. All rights reserved.