我有一个纯 C++ 类需要从某些 Objective-C 实例方法中检索 int
值。
我明白 C++ 不能直接调用 Objective-C 方法。
我有一个 Objective-C++ 类,它允许我使用 Objective-C 并将数据传递到我的纯 C++ 类。
但是,我还没有想出一种方法来允许纯 C++ 类请求计算和检索 int
值。换句话说,纯 C++ 需要能够在需要时(通过函数指针或其他方式)检索该值。
有人知道这是怎么实现的吗?
最佳答案
C++绝对可以调用Objective-C代码。将通信代码存储在 .mm 文件而不是 .cpp 中,Xcode 将为您完成剩下的工作。
.mm 文件存储 Objective-C++ 代码,这就是它工作的原因。
[编辑]
您可能在 C++ 中有一些业务逻辑,并且想将其与您在 Objective-C 中的 UI 结合起来,对吧?您的业务逻辑可能在多个平台之间共享,这就是为什么您不能将所有代码都编译为 Objective-C++ 的原因。
这就是为什么您基本上可以在 Objective-C++ 包装器中“包装”您的 Objective-C 代码。
// myUI.h (C++ header)
class myUI {
void doSomething1();
int doSomething2();
}
// main.cpp (C++ code)
int main() {
myUI ui;
printf("%d\n", ui.doSomething2());
ui.doSomething1();
return 0;
}
// myUI.mm (Objective-C++ code)
int myUI::doSomething2() {
return [[MyController sharedController] doSomething2];
}
// myUI.cpp (C++ code)
void myUI::doSomething1() {
printf("Hi!\n");
}
关于c++ - 从纯 C++ 类调用 Objective-C 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041609/