尝试打印整个数组,但只有最后一个要打印到textview

时间:2018-08-31 05:20:23

标签: ios swift

我正在从使用WebKit的网页中获取一系列句子,我想将所有句子单独一行打印到textview中。我想我有一个循环来打印整个数组,但是它只打印最后一句话。

这就是我所拥有的

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中仅显示最后一句话。

2 个答案:

答案 0 :(得分:7)

有一种简单得多的方法。不要为循环而烦恼。

将循环替换为:

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

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

答案 1 :(得分:3)

问题是您在循环的每次迭代中都将文本设置为全新的String,而不是添加到文本中。

相反,请尝试以下操作:

textView.text += eachEnglishLine

如果每个EnglishLine还没有包含换行符,则需要自己添加。在这种情况下,将是:

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