我正在寫一個Javascript類,它將一個參數的函數傳遞給Objective-C類(使用NimbleKit框架)。爲此,它會像這樣:將Javascript字符串(NimbleKit)傳遞給Objective-C函數?
NKRegisterClass("SKGetEvents");
// TEMP Test date sent to the NKitAction, won't be hardcoded
var testDate = "2011-10-14";
var goButton = new NKButton();
goButton.init(100,20,100,50,"callGetEvents(testDate)"); /*Button to launch function */
goButton.setTitle("Get Events");
goButton.show();
function callGetEvents(testDate) {
CallNKitAction("GetEventsFunction?className=SKGetEvents&dateStringInput="+testDate);
}
所以它會調用使用CallNKitAction的註冊Objective-C類函數,傳遞一個 JavaScript字符串(在這種情況下VAR testDate = 「2011-10-14」)作爲爭論。
Objective-C類中的響應函數根本沒有被調用。它看起來像這樣:
-(NSString *) GetEventsFunction:(const char *)dateStringInput {
// Do stuff with date passed }
如果我改變功能,不再採取參數,只是硬編碼內部的一個日期,該功能被稱爲精細和作品。這告訴我的問題是試圖通過JS var作爲(常量字符*)是問題。我不知道如何將其調用到函數中,然後將其轉換爲NSString以供使用,到目前爲止,我只是將該字符串作爲NSString,const char傳遞並將其轉換爲使用StringWithUTF8String的NSString,都無濟於事。
對不起,很長的解釋,但沒有人有任何想法如何實現這一目標? (也曾在他們的論壇上發過帖,但並不是一個非常大的社區,所以在這裏也發佈。)幫助將非常感謝。