美文网首页
iOS之 Objective-C 与C++混编

iOS之 Objective-C 与C++混编

作者: 默棉花开 | 来源:发表于2022-10-07 11:10 被阅读0次

在Xcode的complete source as 中,选择Objective-C++ 是 Objective-C 和 C++ 的混合物,让你可以在 Objective-C 类中使用 C++ 对象。clang 编译器会把所有后缀名为.mm的文件都当做是 Objective-C++。一般来说,它会如你所期望的那样运行,但还是有一些使用 Objective-C++ 的注意事项。

第一重要点:内存管理是你最应该格外注意的点,因为 ARC 只对 Objective-C 对象有效。当你使用一个 C++ 对象作为类属性的时候,其唯一有效的属性就是assign。因此,你的dealloc函数应确保 C++ 对象被正确地释放了。

第二重要点:如果你在 Objective-C++ 头文件中引入了 C++ 头文件,当你在工程中使用该 Objective-C++ 文件的时候就泄露了 C++ 的依赖。任何引入你的 Objective-C++ 类的 Objective-C 类也会引入该 C++ 类,因此该 Objective-C 文件也要被声明为 Objective-C++ 的文件。这会像森林大火一样在工程中迅速蔓延。所以,应该把你引入 C++ 文件的地方都用#ifdef __cplusplus包起来,并且只要可能,就尽量只在.mm实现文件中引入 C++ 头文件。

第三重要点:如果要与iOS的code分开,那么就需要定义中间类来,隔离开来。(封装调用的API)

相关文章

网友评论

      本文标题:iOS之 Objective-C 与C++混编

      本文链接:https://www.haomeiwen.com/subject/iilpnrtx.html