一尘不染

我可以将Swift与C ++混合使用吗?类似于Objective-C .mm文件

swift

我只是将.m文件更改为.mm并使用C ++。有没有办法用Swift做同样的事情?


阅读 213

收藏
2020-07-07

共1个答案

一尘不染

不。当您从.m切换到.mm时,您实际上是在从Objective-C切换到另一种称为Objective-C 的语言。因此,您并不是真正在使用C
。您使用的是Objective-C ,它接受大多数C 作为输入(与C 接受大多数但不是全部C作为输入的方式相同)。当我说它不是完全C
时,请考虑一个C 文件,其中包含一个名为nil(合法的C )的变量,然后尝试将其编译为Objective-C ++。

Swift没有相同的关系。它不是C或C ++的超集,因此您不能在.swift文件中直接使用它。

“将Swift与Cocoa和Objective-
C结合使用”
还告诉我们:

您不能将C 代码直接导入Swift。而是为C 代码创建一个Objective-C或C包装器。

2020-07-07