私は、Objective-C で JS 関数をブロックとして取得しようとして、新しい iOS 7/Mavericks JavascriptCore ブリッジをいじっています。
JavascriptCore ヘッダー ファイルには、すべての引数がサポートされている限りこれが可能であると記載されていますが、これを試してみてください。
JSContext *context = [[JSContext alloc] init];
context[@"Log"] = ^(NSString *message){NSLog(@"%@", message);};
context[@"BlockTest"] = ^(void (^blockTest)(NSString* blockString)){
NSLog(@"Calling Block Test");
blockTest(@"STRINGGGGG");
};
[context evaluateScript:@"BlockTest( function(dataString){Log('JS '+dataString);} )"];
次の JS 例外が発生します。
TypeError: '[object NSBlock]' is not a function (evaluating 'BlockTest( function(dataString){Log('JS '+dataString);} )')
私のテストコードの何が問題なのかについてのアイデアはありますか?