如何在数组中保存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
}
答案 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)
将对象打印为对象将仅打印其标题