有没有办法从SWIFT调用C routine ?

很多iOS/Apple库都是C语言的,我仍然希望能够调用它们.

例如,我希望能够从swift调用objc运行库.

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

推荐答案

是的,你当然可以与苹果的C库交互.Here是如何解释的.

基本上,C类型、C指针等都被转换成Swift对象,例如Swift中的Cint就是CInt.

我为另一个问题构建了一个小例子,这个问题可以作为一个小小的解释,说明如何在C语言和SWIFT之间架起桥梁:

main.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);

Here是最初的答案.

C++相关问答推荐

C限制限定符是否可以通过指针传递?

librsvg rsvg_handle_get_dimensions获取像素大小与浏览器中的渲染大小没有不同

从纯C中访问通用项对话框

为什么sscanf不能正确地从这个字符串格式中提取所有数字?

C语言编译阶段与翻译阶段的关系

Rust FFI--如何用给出返回引用的迭代器包装C风格的迭代器?

C指针概念分段故障

不同出处的指针可以相等吗?

添加函数会 destruct 嵌入式C代码(无IDE)

在函数外部使用内联ASM时无法指定操作数

Valgrind用net_pton()抱怨

无算术运算符和循环的二进制乘法

为什么GCC不能在 struct 初始值设定项中以sizeof作为条件的三进制中处理复合文字的编译时求值?

浮点正零何时不全为零?

我正在使用 klib 库 我可以使用 (khash) KHASH_SET_INIT_INT64() 负值作为键.因为我在头文件中看到它使用 unsigned long int

函数指针作为函数参数 - 应该使用 const 吗?

如何找出C中分配在堆上的数组的大小?

使用 GCC 将一个函数中初始化的 struct 体实例通过指针传递到 C 中的另一个函数会产生不同的结果

全局变量 y0 与 mathlib 冲突,无法编译最小的 C 代码

为什么使用 C 引用这个 char 数组会导致 Stack smasing?