当前位置: 首页 > 面试题库 >

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

萧心水
2023-03-14
问题内容

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


问题答案:

不。当您从.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包装器。



 类似资料:
  • 我正在编写一些从第三方库扩展类的JUnit测试。超级类扩展了,所以根据定义,我的子类也扩展了。 在我的子类中,我用前缀编写测试方法,然后执行这些方法。 但是,出于许多原因,我们希望转移到JUnit4(其中一个原因是,我们不希望必须在测试方法前缀) 我尝试过使用JUnit4注释简单地编写新测试,但这些方法没有得到执行。 例如: 不扩展第三方测试类不是一个选项。(值得注意的是,Spring的又扩展了其

  • 问题内容: 可以在同一项目中完全使用所有4种语言吗? 这个风格也有类似的问题:我可以将Swift与C ++混合使用吗?类似于 Objective-C .mm文件,对于该文件,可接受的答案 为否。 Bridging Header适当地使用.h不包含C 语句的语句, Objective-C何时.h包含的包装器C ,.mm用于 实际包装C 类的文件以及.swift,这4种语言(如果 包含,则为5种Obj

  • 问题内容: 我已经搜索过网络,到目前为止,我所看到的是您可以一起使用和含义: 要么 是有效的,但是当我使用此代码时,得到的是: 对于第一个,除了与相同。对于第二个。 问题是什么?我不能使用和在一起?还是正常?是我可以检查连接是否全部有效的方法吗?() 问题答案: 不,你不能使用和在一起。它们是独立的API,它们创建的资源彼此不兼容。 虽然有一个。

  • 我想制作Java应用程序。使用CEF3库。CEF是在任何应用程序中嵌入谷歌Chrome浏览器的库。LWJGL用于编写Java的GL代码。但是在使用CEF之前,基本问题是如何混合C和Java。 > Java main将C部分调用为DLL C部分创建窗口并设置GL上下文 在消息循环中,C再次回调Java部分,以便在Java中完成一些GL工作。 以下测试代码失败,并显示消息: 本机方法中的致命错误:线程

  • 假设我有以下数组(每个数组都有任意长度)并将它们用作备件箱;将它们中的每一个放入缓冲区中,然后让 openGL 读取元素数组中的索引,并通过从每个数组箱中挑选来构建顶点。 我们可以使用 {坐标 v1, 法线 vn3, 颜色 c1, texCoord vt4} 构造一个顶点 或者我们可以使用< br > {再次使用坐标v1,再次使用法线vn3,颜色c3,texCoord vt2}构建另一个顶点 请注

  • 问题内容: 我已经搜索过Swift书,但是找不到@synchronized的Swift版本。如何在Swift中进行互斥? 问题答案: 您可以使用GCD。它比更加冗长,但可以代替: