Swift错误:无法调用'追加'使用列表类型的参数'(String)'

时间:2016-10-18 22:47:43

标签: swift string

我刚刚开始学习Swift。我观看了一个关于基本快速编程入门的视频,并将教师的代码直接复制到我的Xcode中。但是,我在我的代码中收到的错误是他没有进入他的错误。我三重检查我做了一切相同的事情。代码如下。最后一行给出了主题中的错误。

var items:[String] = []

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

@IBAction func additem(sender: AnyObject) {
    if (txtinput.text! == ""){
        return
    }
    items.append(txtinput.text!)
    txtoutput.text = ""
    for item in items {
        txtoutput.text.append("\(item)\n")

2 个答案:

答案 0 :(得分:1)

据推测,text属于String类型。 String没有名为append的方法。通常你会使用......

 txtoutput.text = txtoutput.text + "\(item)\n"    // or
 txtoutput.text += "\(item)\n"

但是,也可以编写扩展名,以便拨打append。也许这就是你看过的样本中存在的内容?

extension String {
    mutating func append(str: String) {
        self = self + str
    }
}

答案 1 :(得分:1)

您需要将String添加到现有String中。 所以在你的情况下:

@IBAction func additem(sender: AnyObject) {
    if (txtinput.text! == ""){
        return
    }
    items.append(txtinput.text!)
    txtoutput.text = ""   

    for item in items {
        txtoutput.text = (txtoutput.text)! + "\(item)\n"
    }
}