为 swiftc 指定桥接头
-import-objc-header
标志指定要导入 swiftc
的标头:
// defs.h
struct Color {
int red, green, blue;
};
#define MAX_VALUE 255
// demo.swift
extension Color: CustomStringConvertible { // extension on a C struct
public var description: String {
return "Color(red: `(red)`, green: `(green)`, blue: `(blue)`)"
}
}
print("MAX_VALUE is: `(MAX_VALUE)`") // C macro becomes a constant
let color = Color(red: 0xCA, green: 0xCA, blue: 0xD0) // C struct initializer
print("The color is `(color)`")
$ swiftc demo.swift -import-objc-header defs.h && ./demo
MAX_VALUE is: 255
The color is Color(red: 202, green: 202, blue: 208)