将日期值从目标C传递到Javascript

Passing date value from objective C to Javascript

本文关键字:Javascript 目标 日期      更新时间:2023-09-26

我正试图将一组日期值从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。它对值进行减法运算。

有人能帮我解决这个问题吗?

此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]];  

将字符串用单引号括起来:

NSArray *array = [NSArray arrayWithObjects:@"'01-03'",@"'01-05'",@"'01-07'",@"'01-09'",@"'01-11'", nil];