Передача значения даты из цели C в Javascript - PullRequest
1 голос
/ 25 января 2012

Я пытаюсь передать массив значений даты из Objective C в Javascript. Я пытался передать это так -

NSArray *array = [NSArray arrayWithObjects:@"01-03",@"01-05",@"01-07",@"01-09",@"01-11", nil];
self.dateString = [array componentsJoinedByString:@","];
[wtWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName([%@])", dateString]];  

В моем Javascript -

<script>
function methodName(val,val1)
   {
      alert(val1);
   }
</script>

Однако, что здесь происходит, это то, что значение отображается как -2, -4, -6, -8, -10. Он буквально выполняет операцию вычитания значений.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

4 голосов
/ 25 января 2012

Этот фрагмент Obj-C:

[NSString stringWithFormat:@"methodName([%@])", dateString]

создает следующую строку:

methodName(01-03,01-05,01-07,01-09,01-11)

, которая в Javascript представляет собой набор операций вычитания.Если вы хотите использовать -stringByEvaluatingJavaScriptFromString, вам нужно как-то экранировать даты:

NSArray *array = [NSArray arrayWithObjects:@"'01-03'",@"'01-05'",@"'01-07'",@"'01-09'",@"'01-11'", nil];
self.dateString = [array componentsJoinedByString:@","];
[wtWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName([%@])", dateString]];  

или:

NSArray *array = [NSArray arrayWithObjects:@"01-03",@"01-05",@"01-07",@"01-09",@"01-11", nil];
self.dateString = [array componentsJoinedByString:@"','"];
[wtWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName(['%@'])", dateString]];  
1 голос
/ 25 января 2012

Оберните строки в одинарные кавычки:

NSArray *array = [NSArray arrayWithObjects:@"'01-03'",@"'01-05'",@"'01-07'",@"'01-09'",@"'01-11'", nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...