3

私は、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);} )')

私のテストコードの何が問題なのかについてのアイデアはありますか?

4

2 に答える 2