将 Javascript 数组传递给 UILabel - iOS
Posted
技术标签:
【中文标题】将 Javascript 数组传递给 UILabel - iOS【英文标题】:Passing Javascript Array to UILabel - iOS 【发布时间】:2013-08-20 19:03:51 【问题描述】:我的应用程序的本地 html 文件中有一个 javascript 数组:
//js
<script language="javascript">
test = ["First menu item","second menu item", "third menu item"];
</script>
我想将此数组传递给 ios 中的 UILabel。我该怎么做呢?
提前致谢!
【问题讨论】:
你看过 JavaScriptCore 框架吗? 是的。不过,我仍然需要帮助。 【参考方案1】:我可以通过以下步骤做到这一点:
首先,将您的 JavaScript 字符串数组转换为一个
使用方法join()
二、使用webview的方法
stringByEvaluatingJavaScriptFromString:
获取上面的字符串
最后,使用NSString的方法componentsSeparatedByString:
将字符串转换为 iOS 字符串数组。
现在,您只需将此数组用作 UIPickerView 的数据源。你可以看到如何做到这一点here。
这是代码的样子:
你的javascript:
<script language="javascript">
var test = ["First menu item","second menu item", "third menu item"];
var testString = test.join('#');
</script>
你的 Objective-C 代码:
NSString *testArrayString = [webView stringByEvaluatingJavaScriptFromString:@"testString"];
NSArray *testArray = [testArrayString componentsSeparatedByString:@"#"];
NSLog(@"%@", testArray);
这是 NSLog 将打印的内容:
2013-08-20 23:48:29.578 YourProject3633:c07] (
"First menu item",
"second menu item",
"third menu item"
)
编辑:
要在标签中显示数组内容,而不是 UIPickerView,您可以这样做(未经测试,但应该可以):
self.myLabel.text = [NSString stringWithFormat:%@, testArray];
或简单地用逗号再次连接数组的字符串,如下所示:
self.myLabel.text = [testArray componentsJoinedByString:@","];
我不知道是否有人有更好的解决方案,这是我想到的第一件事。让我知道它是否对您有帮助。
【讨论】:
非常感谢,但在 Objective-c 代码中括号后的第二行中出现错误。使用未声明的标识符测试。头文件中的 UIPicker 应该测试什么? 对不起,我刚刚粘贴错了。那应该是来自javascript的字符串。再试一次。 很抱歉,我只是对使用选择器视图不够熟悉。如果我只想在 UILabel 中显示我该怎么做,我会更新我的问题。 老兄,我的回答是关于在 Objective-C 数组中“转换”一个 JavaScript 数组。执行NSLog
后,您可以在控制台中看到正确安装的阵列。我留给你的 UIPickerView 部分,真的很基础。只需点击我发布的链接 (leesilver.net/1/post/2011/07/uipickerview-how-to-populate.html)。你只需要通过我们的'testArray'来改变他的'arrStatus'数组,其余的都是一样的。试一试,有其他疑问可以稍后再问。
很高兴再次提供帮助。祝你好运!以上是关于将 Javascript 数组传递给 UILabel - iOS的主要内容,如果未能解决你的问题,请参考以下文章
将 C# ASP.NET 数组传递给 Javascript 数组
将 C# ASP.NET 数组传递给 Javascript 数组