我正在使用javascriptcore框架与JS文件功能进行交互。 我有以下类型的对象
$giftTo = !empty($value['giftTo']) ? $value['giftTo'] : '<b>not entered</b>';
$gifts[] = "I give my ". $value['giftGiveMy'] ." to ". $giftTo .".\n";
我正在创建对象数组并将其作为输入传递给javascript方法,如下所示
class Test: NSObject {
var testId: NSNumber?
var testIndex: Int?
var testDate: NSDate?
var title: String?
var status: String?
}
我必须将此数组传递给JS的方法,请让我知道如何传递它。
答案 0 :(得分:0)
您应该能够将属性传递给JS,如下所述: http://nshipster.com/javascriptcore/
阻挡
现在无法在没有Mac的情况下测试代码,但可能正在运行:
let testArrayCount: @convention(block) Void -> String = {
return testArray.count
}
let transferTest: @convention(block) String -> (String, String, String, String, String) = {
i in
return ( String(testArray[i].0),String(testArray[i].1),String(testArray[i].2),testArray[i].3,testArray[i].4 )
}
context.setObject(unsafeBitCast(testArrayCount, AnyObject.self), forKeyedSubscript: "testArrayCount")
context.setObject(unsafeBitCast(transferTest, AnyObject.self), forKeyedSubscript: "transferTest")
现在您可以在JS代码中读取数组(现在是Pseudocode):
var jsTestArray;
for ( i=0, i<testArrayCount(), i++ ) {
jsTestArray.append( transferTest(i) );
}
将对象后面的对象加载到Javascript中后,您应该可以使用该数组。如果你不想使用字符串,你可能不得不把东西丢回去(但是作为JS noob,我不需要这样做)
使用JSExport协议
您也可以通过http://nshipster.com/javascriptcore/上描述的其他方式尝试。
希望,这回答了你的问题?