有没有办法从Swift调用C例程?
很多iOS/Apple库只是C,我仍然希望能够调用它们.
例如,我希望能够从swift调用objc运行时库.
特别是,如何桥接iOS C标头?
Lea*_*ros 101
是的,您当然可以与Apples C库进行交互.这里解释如何.
基本上,C类型,C指针等被转换为Swift对象,例如int
Swift中的C 是一个CInt
.
我为另一个问题构建了一个小例子,可以用来解释如何在C和Swift之间架起桥梁:
main.swift
import Foundation
var output: CInt = 0
getInput(&output)
println(output)
Run Code Online (Sandbox Code Playgroud)
UserInput.c
#include <stdio.h>
void getInput(int *output) {
scanf("%i", output);
}
Run Code Online (Sandbox Code Playgroud)
cliinput桥接,Header.h
void getInput(int *output);
Run Code Online (Sandbox Code Playgroud)
这是最初的答案.
编译器将C API转换为Swift,就像它对Objective-C一样.
import Cocoa
let frame = CGRect(x: 10, y: 10, width: 100, height: 100)
import Darwin
for _ in 1..10 {
println(rand() % 100)
}
Run Code Online (Sandbox Code Playgroud)
请参阅文档中的与Objective-C API交互.
万一您和我一样不熟悉XCode,并想尝试Leandro的答案中发布的摘录:
归档时间: |
|
查看次数: |
62537 次 |
最近记录: |