#ios #nsdictionary #nsnumber #javascriptcore
#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. Вероятно, это потому, что имена свойств объекта в JS должны быть строками, а не целыми числами