【问题标题】:Calling Objective-C methods from CPP code从 CPP 代码调用 Objective-C 方法
【发布时间】:2026-01-17 11:30:01
【问题描述】:

我是 Objective-C 的新手。
我想从单独的 .cpp 文件中定义的 C++ 类调用 Objective-C 方法。

我使用了dreamlax(不是 PIMPL 的)在这个问题的答案中描述的相同机制 http://*.com/questions/1061005/calling-objective-c-method-from-c-method

但我被困在如何使用参数 objectiveCObject 从 CPP 类调用函数 int MyCPPClass::someMethod (void *objectiveCObject, void *aParameter); 的问题上。

也有人可以通过示例解释如何从 Objective-C 代码调用 C++ 类函数。

【问题讨论】:

  • 我曾经写过一个非常简单的例子来回答某人的问题。也许它会给你一些想法:*.com/questions/13236476/…
  • 感谢您的示例,在最后的“OCClass.mm”文件中,您添加了 C++ 类实现。我们可以将此实现移动到单独的 C++ 文件吗?或者它应该只在那个文件中。
  • 它需要在 .mm 文件中,因为它使用 Objective-C 代码作为实现的一部分。我想它可以移动到自己的文件中,但我对 O-C++ 的习惯是通过一对类连接语言并将它们一起实现,这样我就只有一个地方可以查找该代码。

标签: c++ objective-c


【解决方案1】:

您必须在执行调用的文件中使用 Objective-C++。要从 Xcode 执行此操作,请将文件从 Whatever.m 重命名为 Whatever.mm。然后你可以混合调用。

【讨论】: