Ios 正在尝试打印整个阵列,但只有最后一个阵列正在打印到textview

Ios 正在尝试打印整个阵列,但只有最后一个阵列正在打印到textview,ios,swift,Ios,Swift,我用WebKit从一个网页上得到了一系列句子,我想把它们都打印到一个文本视图中。我想我有一个循环来打印整个数组,但它只打印最后一句话 这是我的 extension ViewController: WKScriptMessageHandler { func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {

我用WebKit从一个网页上得到了一系列句子,我想把它们都打印到一个文本视图中。我想我有一个循环来打印整个数组,但它只打印最后一句话

这是我的

extension ViewController: WKScriptMessageHandler {
    func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        // Receive message from Javascript, check & process message
        if message.name == "english", let englishLines = message.body as? [String] {
            // All of the sentences are printing in my console
            print(englishLines) 
            //Try Loop to print all of sentences on individual line
            for englishLine in englishLines {
                let eachEnglishLine = englishLine
                textView.text = eachEnglishLine
            }
        }

文本视图中只打印最后一句。

问题在于,在循环的每次迭代中,您都将文本设置为一个全新的字符串,而不是添加到其中

相反,请尝试以下方法:

textView.text += eachEnglishLine
如果每行还没有包含新行字符,那么您需要自己添加它。在这种情况下,它将是:

textView.text += “\(eachEnglishLine)\n”

有一个更简单的方法。不要为循环费心

将您的循环替换为:

textView.text = englishLines.joined(separator: "\n")

您的代码不起作用,因为您没有追加每一行。您可以简单地将每个值分配给文本视图,以便只显示最后一行分配的值。

您的第一个调用端口应该是,并了解text属性的实际功能。从那以后,它会让你对这个问题有一个更好的了解,并让你踏上寻找解决方案的新征程。简单的回答是,文本设置要显示的文本,而不是附加它