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

如何从Swift调用C?

陆涵畅
2023-03-14
问题内容

有没有办法从Swift调用C例程?

许多iOS / Apple库仅是C语言,我仍然希望能够调用它们。

例如,我希望能够从Swift调用objc运行时库。

特别是,如何桥接iOS C标头?


问题答案:

是的,您当然可以与Apples
C库进行交互。这里说明了如何。
基本上,C型,C指针等被翻译成对象斯威夫特,例如C int在夫特是一个CInt

我为另一个问题构建了一个小例子,该例子可以作为对C和Swift之间的桥梁:

主Swift

import Foundation

var output: CInt = 0
getInput(&output)

println(output)

UserInput.c

#include <stdio.h>

void getInput(int *output) {
    scanf("%i", output);
}

cliinput-Bridging-Header.h

void getInput(int *output);


 类似资料:
  • 问题内容: 我正在尝试从Swift调用CCKeyDerivationPBKDF。 我已经在Project-Bridging-Header.h中导入了所需的标头: (顺便说一句,在我的项目中导入其他Objective C代码时,桥接头似乎正常工作)。 在Xcode中,我可以从.swift文件跳转到此处显示的定义: 最后,当我尝试像这样调用函数时: …我得到这个编译器错误: 无法使用类型为’(CCPB

  • 问题内容: 我正在尝试使我的javascript与快速代码交互,但不幸的是我没有成功。 目前,我只是尝试更改标题的颜色并显示一条消息,如下面的代码所示。 这是我的( index.html )代码: 这是我的( main.js -JavaScript )代码: 这是我的( ViewController.swift )代码: 问题答案: 您已正确设置了所有内容,但没有将实例分配给。由于配置包含Java

  • JSON似乎打印到浏览器窗口,所以我不完全确定这种方法有什么问题?请谁能提供一些帮助,为什么这可能不起作用? 谢谢

  • 问题内容: 有没有办法调用从Swift的dylib加载的C函数? 这是我的 dylib 文件: cppdemofile.cpp cppdemofile.h 编译为dylib并检查: …复制到… Swift程序 : 如何调用该函数?可以使用dylib吗?我应该改为将这些资源添加到我的迅速项目中吗? 问题答案: 从Swift 调用该函数是可能的,因为您已将其定义为与C关联。 使库成为Swift模块(如

  • 问题内容: 我无法从Objective-C访问Swift Singleton。 swiftSharedInstance无法访问。 问题答案: 现在,我有以下解决方案。也许我忽略了一些使我能够直接访问“ swiftSharedInstance”的东西? 然后在ObjC中,我可以获取sharedInstance类方法(在导入xcode生成的swift标头绑定之后)

  • 问题内容: 我编写了如下代码块: 初始化后就可以了。将人员设置为时,不调用该方法。 问题答案: 问题在于操场不是现实生活。这只是不使用它们的又一个原因(我认为,对于苹果公司而言,这是一个可怕的错误)。使用真实的iOS应用项目,将按预期方式调用。 来自真实项目的示例: 这就是您期望的。