一、封裝一個用C編寫的程序庫
但 Swift 無法直接處理 C 的頭文件,它的依賴關係是基於模塊 (modules) 的。爲了讓一個 用 C 或 Objective-C 編寫的程序庫對 Swift 編譯器可見,它們必須按照 Clang 模塊的格式提供 一份 模塊地圖 (module map)。這份地圖最重要的功能,就是列出構成模塊的頭文件。
/// 將 'text' (假設是 UTF-8 編碼的字符串,且長度爲 'len') /// 從 CommonMark Markdown 轉換爲 HTML,
/// 返回一個以 null 結尾的 UTF-8 編碼的字符串。
/// 調用者負責對返回的緩衝區進行釋放。
char *cmark_markdown_to_html(const char *text, int len, int options);
// Swift 中的函數接口。
func cmark_markdown_to_html
(_ text: UnsafePointer<Int8>!, _ len: Int, _ options: Int32) -> UnsafeMutablePointer<Int8>!
// 封裝後的接口
func markdownToHtml(input: String) -> String {
let outString = cmark_markdown_to_html(input, input.utf8.count, 0)!
defer { free(outString) }
return String(cString: outString)
}
備註
這章內容過於瑣碎,另外沒有多少新的內容,暫時級導這裏