Swift:在数组中保存文本字段

时间:2015-08-20 13:19:29

标签: arrays swift class

如何在数组中保存2个文本字段的文本?

这就是我尝试过的。我使用println来检查值是否在数组中。但似乎它不起作用。

任何人都可以解释并请,解释每一步。谢谢

1-我创建了一个swift文件:novaClass.swift。我在

中创建了一个结构
struct novaClass {
    var img : String
    var text : String
}

2- ViewController.swift声明一个数组

    var nouArray = [novaClass]()

3-保存数组中的文本字段

@IBAction func save(sender: AnyObject) {

    //I put the text of 2 text fields in the array
    var nouText = novaClass(img: textField1.text, text: textField2.text) 
    nouArray.append(nouText)

    //I check the array
    println(nouArray) // this gives "[_.novaClass]" I do not understand

}

2 个答案:

答案 0 :(得分:2)

这是Swift中的预期行为。默认情况下,Swift对象没有描述属性,因此println默认打印类名。

您的班级可以采用Printable协议(已在Swift 2中重命名为CustomStringConvertible)以提供更详细的打印输出:

struct novaClass: Printable {

    var img : String
    var text : String

    var description: String {
        get {
            return "{img: \(img), text: \(text)}"
        }
    }
}

现在尝试一下:

var array = [novaClass]()
let x = novaClass(img: "foo", text: "bar")
let y = novaClass(img: "foo2", text: "bar2")
array.append(x)
array.append(y)
println(array) // will print: "[{img: foo, text: bar},{img: foo2, text: bar2}]"

答案 1 :(得分:1)

您应该通过

进行检查
println(nouArray[0].text)
println(nouArray[0].img)

将对象打印为对象将仅打印其标题