JavaScriptCore除了'hello,world'之外什么都不起作用

时间:2017-03-02 17:53:16

标签: ios swift cocoa-touch javascriptcore

我目前正在Swift中编写一个与比特币相关的应用程序。由于没有可用的BIP32 / 39本机库,我决定使用JavaScriptCore使用js。

问题是,Swift中几乎所有输出<?php $connessione = mysql_connect("***", "***", "***"); mysql_select_db("***", $connessione); $risultato = mysql_query("SELECT * FROM servem_vote", $connessione); if(mysql_query("INSERT INTO servem_vote (uid,lastvote) VALUES ($uid,now()) ON DUPLICATE KEY UPDATE lastvote=now(); ")) { header('location:/home.php'); } else { echo "Error: " . mysql_error(); } mysql_close($con); ?> ,例如:

undefined

这个有效:

var pip_buffer = new Uint8Array(strength / 8);

这是我的Swift代码:

var pip_buffer = "Hello, world"

如何让这件事有用?

1 个答案:

答案 0 :(得分:0)

查看JSValue API Doc我没有看到对Uint8Array的任何引用,这可能意味着JavaScriptCore无法将Uint8Array转换为“Swift”值。

您可以在JS端使用Array.from(pip_buffer)将您的Uint8Array转换为有效的常规数组。

e.g。

    if let vb = context?.evaluateScript("Array.from(pip_buffer)") {
        print("\(vb)")
    }

转换为常规JS数字数组后,您还可以使用JSValue.toArray()(Swift方面)将其作为数组(也可以使用toNumber()toInt32()或{{ 1}},对于数组中的每个项目。)