xcode 在Objective-C中使用C++

cunj1qz1  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(143)

此问题已在此处有答案

How to call functions in c++ and objective-c to each other(1个答案)
6天前关闭。
此帖子5天前编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
我正在尝试使用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上找到了一种方法,但不是很清楚,因为在这种情况下,相同的C类使用了2种方法:1、在国外实施2。在内部实施。内部方法将调用外部方法(来自内部逻辑的C类必须调用它自己实现不同逻辑的方法)。没有责任划分(SOLID)。您可以查看此方法链接How to call functions in c++ and objective-c to each other

bprjcwpo

bprjcwpo1#

如果你在组合两种语言时有太多的错误,你需要在你的C文件中查看#include。你不能在C文件中使用include UIKit或其他特定的库!XCode疯了,显示了数百个错误。
要解决这个问题,你需要一个使用Objective-C++的。注意细节!
hh(不包括ObjCFile。h!

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

Bridge.mm(在此处包含Objective-C头文件

#import "ObjCFile.h"

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

新建CppFile。人民党

#include "Bridge.hh"

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

就是这样!
我看过的许多文章都与我的文章相似,但是它们省略了关于XCode库的信息。这让我很困惑

相关问题