该条目在JSContext返回的NSDictionary中消失了

时间:2019-04-01 10:37:20

标签: ios nsdictionary nsnumber javascriptcore

给出一个JSContext

    JSContext *context = [[JSContext alloc] init];
    context[@"directReturn"] = ^id(NSString *name) {
        id obj = @{@(2): @"test", @"testKey": @"testValue"};
        return obj;
    };

并命名为:

    JSValue *jsValue = [context evaluateScript:@"directReturn()"];
    obj = jsValue.toObject;
    NSLog(@"jscore: %@", obj);

输出为:

jscore: {
    testKey = testValue;
}

我们看到使用NSNumber作为键的第一个条目消失了。

为什么第一个条目消失了?

1 个答案:

答案 0 :(得分:0)

基于JavaScriptCore的源代码,它仅允许将NSString类型的键转换为js对象。

JavaScriptCore