【问题标题】:The entry disappeared in NSDictionary returning from JSContext从 JSContext 返回的 NSDictionary 中的条目消失了
【发布时间】:2019-04-01 10:37:19
【问题描述】:

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作为键的条目消失了。

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

【问题讨论】:

  • 可能是因为JS中的对象属性名应该是字符串而不是整数

标签: ios nsdictionary nsnumber javascriptcore


【解决方案1】:

基于JavaScriptCore的源码,它只允许将NSString类型的key转换成js对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-17
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多