Я использую JavascriptCore
в своем приложении. Теперь я передаю некоторые переменные в JSContext
, которые затем можно передать обратно в Objective-C. Однако одна из переменных, NSDictionary, не передается правильно. Я запускаю код ниже:
var evaluate = function(variables) {
app.setDictionary(variables.dictionary);
}
Это простой пример, в котором следующие методы настроены в JSContext
.
Это метод setDictionary()
:
- (void)setDicationary:(NSDictionary *)dictionary {
self.mutableDictionary = [dictionary mutableCopy];
}
Это variables.dictionary
:
- (NSDictionary *)dictionary {
return self.values;
}
И вот как я вызываю evaluate()
:
JSValue *jsFunction = self.context[@"evaluate"];
JSValue *value = [jsFunction callWithArguments:@[self.variables]];
Однако в методе setDictionary я не получаю NSDictionary, а вместо этого получаю NSString, содержащую [object Object]
.
Любые идеи, как я могу это решить?