2012-07-19 86 views
1

我想添加一個庫到我的Rubymotion項目,它顯示沒有錯誤,但我似乎無法訪問庫中的類,在我的rakefile中我有...Rubymotion包括一個靜態庫

在頭目錄
app.vendor_project('vendor/iSpeechSDK', :static, 
    :products => ["libiSpeechSDK.a"], 
    :headers_dir => "Headers") 

app.frameworks += ['iSpeechSDK'] 

的某文件和.h文件都存在

在我app_delegate我有這樣的代碼......

@sdk = iSpeechSDK.sharedSDK 

但我得到的錯誤...

模擬./build/iPhoneSimulator-5.0-Development/Mirror鏡像.app (main)> 2012-07-19 10:50:05.978鏡像鏡像[26195:11903] app_delegate.rb:13:在application:didFinishLaunchingWithOptions:': undefined local variable or method iSpeechSDK' for#(NameError) 2012-07-19 10:50:05.980鏡像鏡像[26195:11903] *終止應用程序,由於未捕獲的異常'NameError',原因:'app_delegate.rb:13:在application:didFinishLaunchingWithOptions:': undefined local variable or method iSpeechSDK'for# (NameError) ' *第一擲調用堆棧: (0xa88052 0x417d0a 0x207954 0x5c285 0x5bce1)

回答

4

回答Laurent on Google Groups

問題是,iSpeechSDK類名以小寫字母開頭,在Ruby中不是有效的常量名。

在下一版本中,你將能夠做到ISpeechSDK.sharedSDK(因爲你已經可以做訪問常量或枚舉也開始用小寫字母),但現在,一種解決方法可以是:

NSClassFromString('iSpeechSDK').sharedSDK 

另外,將.bundle文件複製到resources文件夾中?構建系統不會自動執行(它只會將應用程序鏈接到.a庫)

+0

現在可以在https://gist.github.com/3143981找到完整的解決方案。 – creativetechnologist 2012-07-19 13:47:43