Posting ini juga memiliki penjelasan yang bagus tentang bagaimana melakukan ini menggunakan dukungan modul clang .
Ini dibingkai dalam hal bagaimana melakukan ini untuk proyek CommonCrypto, tetapi secara umum itu harus berfungsi untuk pustaka C lain yang ingin Anda gunakan dari dalam Swift.
Saya secara singkat bereksperimen dengan melakukan ini untuk zlib. Saya membuat proyek framework iOS baru dan membuat direktori zlib, yang berisi file module.modulemap dengan berikut ini:
module zlib [system] [extern_c] {
header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/zlib.h"
export *
}
Kemudian di bawah Target -> Link Binary With Libraries saya memilih menambahkan item dan menambahkan libz.tbd.
Anda mungkin ingin membangun pada saat ini.
Saya kemudian bisa menulis kode berikut:
import zlib
public class Zlib {
public class func zlibCompileFlags() -> UInt {
return zlib.zlibCompileFlags()
}
}
Anda tidak harus meletakkan nama pustaka zlib di depan, kecuali dalam kasus di atas saya menamai kelas Swift func sama dengan fungsi C, dan tanpa kualifikasi fungsi Swift akhirnya dipanggil berulang kali sampai aplikasi berhenti.