Запись исчезла в NSDictionary, возвращаясь из JSContext - PullRequest
0 голосов
/ 01 апреля 2019

Дайте 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 голосов
/ 02 апреля 2019

Основывается на исходном коде JavaScriptCore, он позволяет преобразовывать только ключи типа NSString в объекты js.

JavaScriptCore

...