在项目中混合 C 和 Objective-C
在同一个项目中混合 C 和 Objective-C 是可行的,但需要采取一些预防措施。要从 C 调用 Objective-C 方法,您可以使用标准 C 包装函数,该函数为非 Objective-C 代码提供 C 风格接口。
C 包装函数方法
创建以下文件:
-
MyObject-C-Interface.h: 声明 C包装函数 MyObjectDoSomethingWith.
-
MyObject.h: 定义您的 Objective-C 类以及要从 C 调用的成员函数。
-
MyObject.mm: 实现包装函数 MyObjectDoSomethingWith 和 Objective-C 成员function.
-
MyCPPClass.cpp: 包含包装函数标头并实现您的 C 类,该类使用包装函数调用 Objective-C 方法。
包装函数允许您使用 C 语法从 C 调用 Objective-C 方法,而无需在 C 中包含 Objective-C 标头
PIMPL 模式方法
混合 C 和 Objective-C 的另一种方法是使用 PIMPL(指向实现的指针)模式:
-
MyObject -C-Interface.h: 定义 PIMPL 的接口(实现) class.
-
MyObject.h: 声明您的 Objective-C 类,该类现在委托给 PIMPL 类。
-
MyObject.mm: 实现PIMPL 类和 Objective-C 类方法,调用相应的 PIMPL方法。
-
MyCPPClass.h: 包含 PIMPL 接口并定义 C 类,该类使用包装器函数调用 PIMPL 方法。
-
MyCPPClass。 cpp: 实现你的 C 类,它使用 PIMPL 包装函数来调用 Objective-C方法。
这种方法使您的 Objective-C 实现保持私有,以便以后更容易更改或交换。
请记住包含必要的标头并使用正确的语法确保C和Objective-C之间的无缝集成。
以上是如何在我的项目中无缝集成 C 和 Objective-C?的详细内容。更多信息请关注PHP中文网其他相关文章!