ios - 该条目在从 JSContext 返回的 NSDictionary 中消失

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

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

最佳答案

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

JavaScriptCore

关于ios - 该条目在从 JSContext 返回的 NSDictionary 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55453128/

相关文章:

ios - 将 NSDictionary 转换为 POST 字符串时卡住了

objective-c - 在 CoreData 中设置时 double NSNumber 不准确(使用 RestKit)

iphone - 有人可以发布 NSNumber 的完整示例用法吗?

ios - 无法在 Xcode 4.3.2 中构建,因为退出代码 254 导致 clang 失败

ios - 在 for 循环中附加到 NSMutableString

ios - 如何将字典数组保存到plist?

ios - 如何使用 NSNumber 对象的属性创建类别

ios - 在 Controller 中以编程方式创建 View 强与弱 subview

objective-c - 简单的 addObject 到 NSMutableArray 方法给出 lldb 错误

ios - NSMutableArray 中的 NSDictionary 在我的整个 for 循环中发生变化