我一直在玩新的 iOS 7/Mavericks JavascriptCore 桥,试图在 Objective-C 上获取 JS 函数作为块。
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);} )')
关于我的测试代码有什么问题的任何想法?