Esta publicación también tiene una buena explicación sobre cómo hacer esto usando el soporte del módulo clang .
Está enmarcado en términos de cómo hacer esto para el proyecto CommonCrypto, pero en general debería funcionar para cualquier otra biblioteca de C que desee usar desde Swift.
Experimenté brevemente haciendo esto para zlib. Creé un nuevo proyecto de marco de iOS y creé un directorio zlib, que contiene un archivo module.modulemap con lo siguiente:
module zlib [system] [extern_c] {
header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/zlib.h"
export *
}
Luego, en Objetivos -> Enlace binario con bibliotecas, seleccioné agregar elementos y agregué libz.tbd.
Es posible que desee construir en este punto.
Luego pude escribir el siguiente código:
import zlib
public class Zlib {
public class func zlibCompileFlags() -> UInt {
return zlib.zlibCompileFlags()
}
}
No tiene que poner el nombre de la biblioteca zlib al frente, excepto en el caso anterior que nombré la función de clase Swift de la misma manera que la función C, y sin la calificación la función Swift termina siendo llamada repetidamente hasta que la aplicación se detiene.