我只是将.m文件更改为.mm并使用C ++。有没有办法用Swift做同样的事情?
不。当您从.m切换到.mm时,您实际上是在从Objective-C切换到另一种称为Objective-C 的语言。因此,您并不是真正在使用C 。您使用的是Objective-C ,它接受大多数C 作为输入(与C 接受大多数但不是全部C作为输入的方式相同)。当我说它不是完全C 时,请考虑一个C 文件,其中包含一个名为nil(合法的C )的变量,然后尝试将其编译为Objective-C ++。
nil
Swift没有相同的关系。它不是C或C ++的超集,因此您不能在.swift文件中直接使用它。
.swift
“将Swift与Cocoa和Objective- C结合使用”还告诉我们:
您不能将C 代码直接导入Swift。而是为C 代码创建一个Objective-C或C包装器。