Common Lisp 和 Cocoa 結合起來編寫 APP 的例子--代碼中設置加載路徑

Common Lisp 和 Cocoa 結合起來編寫 APP 的例子--代碼中設置加載路徑

話說最近愈來愈以爲 Objective-C 的代碼太繁瑣了, 可是在 OSX 下寫程序又離不開蘋果的框架,因而就但願能把蘋果 Cocoa 提供的界面組件和其餘更簡單的編程語言結合起來使用(好比 Common Lisp), 查了查, 發現能夠搞,蘋果提供了 bridge , Common Lisp 提供了 FFI,.

翻了翻文檔, 在 Clozure CL 中找到一篇比較簡單的,就是一個匯率轉換器. 具體就是:
一、先用XCode 的 Interface Builder 完成界面組件的設置, 輸出一個名爲 correncyconverter.nib 的文件;
二、再用 Common Lisp 建立一個名爲 currency-converter.lisp 的源文件, 在這個lisp文件裏寫代碼操做這些界面組件;
三、最後在 CCL 環境裏把這兩個文件編譯成一個獨立的 APP。

一切都很完美,惟一的缺憾就是要把 Lisp 的 image 包含進去, 使得最終的 app 文件體積稍微偏大--大概50M.

具體的教程在 Clozure CL 的目錄下 "/ccl-1.8-darwinx86/examples/cocoa/currency-converter/howto.html",上述兩個文件也能夠在這個目錄下找到。

編譯過程以下,在 CCL 中依次輸入下面的命令 html

# 把 currency-converter 設置爲當前工做路徑    
(setf (current-directory) "/Users/mikel/Valise/clozure/openmcl/example-code/currency-converter/")
# 加載 currency-converter.lisp
(load "currency-converter")
# 加載 BUILD-APPLICATION
(require "build-application")
# 執行BUILD-APPLICATION 
(ccl::build-application :name "CurrencyConverter"
                        :main-nib-name "CurrencyConverter"
                        :nibfiles 
  '(#P"/ccl-1.8-darwinx86/examples/cocoa/currency-converter/CurrencyConverter.nib"))

最後會在目錄 「/ccl-1.8-darwinx86/examples/cocoa/currency-converter/」 下生成一個 APP, 這個 APP 能夠獨立運行,以下圖所示: shell

 
相關文章
相關標籤/搜索