gpt4 book ai didi

c++ - 在 C++ 类中使用 Objective-C SDK

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:32 24 4
gpt4 key购买 nike

我有一个需要使用 Objective-C SDK 的 C++ 项目。我的想法是在 .mm 文件中创建一个 C++ 类,该文件包含以 Objective-C 语法调用的 SDK。然后我会在现有的 c++ 项目(具有 .cpp 文件)中声明该类的一个实例。

那行得通吗?据我所知,“.mm”文件是一个 Objective-C++ 文件,可以调用 Objective-C 函数?但是cpp文件可以实例化.mm文件中定义的类吗?

最佳答案

在 header 中定义类,并将其包含在定义类成员的 Objective-C++ 文件和使用该类的 C++ 文件中。

如果您需要存储 Objective-C 类型,请将它们包装在一个不透明的结构中。

插图:

“C.h”:

class C
{
public:
C();
void foo();
private:
struct Data;
Data* m_data;
};

在 Objective-C++ 中的实现:

#include "C.h"

struct C::Data
{
SomeTypeInYourSDK* thing;
};

C::C()
{
m_data = new Data;
m_data->thing = [SomeTypeInYourSDK createSomehow];
}

void C::foo()
{
[m_data->thing doSomething];
}

在 C++ 中使用:

#include "C.h"

void bar()
{
C c;
c.foo();
}

关于c++ - 在 C++ 类中使用 Objective-C SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com