32. JavaScript に直接関数を登録
Swift で関数を登録する場合 (6/6)
let function = { (values:AnyObject!)->AnyObject in
var sum:Int = 0
for value in values as NSArray
{
sum += value.integerValue
}
return sum
}
context.setUnaryFunction(function,forKeyedSubscript:"sum")
これでクロージャを JavaScript へ登録可能に。
80. var bundle = NSBundle.mainBundle()
var path = bundle.pathForResource("Script",ofType:"js")
let script = NSString(contentsOfFile:path,
encoding:NSUTF8StringEncoding, error: nil)
context.evaluateScript(script)
let result = context.objectForKeyedSubscript("answer")
スクリプトをファイルから読み込んで実⾏行行
バンドルからファイルを読み込む
スクリプトをリソースとして管理理できる
81. function sum(array)
{
var result = 0;
for (var i = 0; i < array.length; ++i)
{
result += array[i];
}
return result;
}
var answer = sum([1,10,100,1000]);
スクリプトをファイルから読み込んで実⾏行行
読み込む JavaScript ファイル
素のテキストとして扱えるので編集が簡単
83. function sum(array)
{
var result = 0;
for (var i = 0; i < array.length; ++i)
{
result += array[i];
}
return result;
}
return sum([1,10,100,1000]);
return 命令令で終われるスクリプトにする
読み込む JavaScript ファイル
最後を return 命令令で終わらせたい