我有三个文本片段,用于将数据附加到结构中。我如何打印我附加的内容?现在我收到一条错误消息。
import UIKit
class ViewController: UIViewController {
@IBOutlet var c: UITextField!
@IBOutlet var a: UITextField!
@IBOutlet var b: UITextField!
var contacts: [Person] = []
@IBAction func press(_ sender: Any) {
contacts.append(Person(name: a.text!, surname: b.text! , phone: Int(c.text!)!))
print(ViewController.Person)
}
struct Person {
var name: String
var surname: String
var phone: Int
}
}发布于 2017-10-06 22:36:11
我已经修改了你的代码,你可以使用它,它会给你想要的结果。
import UIKit
class ViewController: UIViewController {
@IBOutlet var c: UITextField!
@IBOutlet var a: UITextField!
@IBOutlet var b: UITextField!
var contacts: [Person] = []
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func press(_ sender: Any) {
contacts.append(Person(name: a.text!, surname: b.text! , phone: Int(c.text!)!))
print(self.contacts.description)
}
struct Person {
var name: String
var surname: String
var phone: Int
}}我刚在打印声明中做了一个改动。作为您的联系人数组,您可以查看控制器本身,因此您可以直接使用它,并使用函数描述打印联系人的更新值。
发布于 2017-10-06 22:38:22
您正在尝试打印实际的struct of Person。要打印特定实例。
可以将整个数组打印为:
print("contacts: \(contacts)")如果您想打印一个实例,我建议将代码拆分一点:
@IBAction func press(_ sender: Any) {
let person = Person(name: a.text!, surname: b.text! , phone: Int(c.text!)!)
print(person)
contacts.append(person)
}但是要使打印有用,您应该将description属性添加到您的结构中,并使您的结构符合CustomStringConvertible。
struct Person: CustomStringConvertible {
var name: String
var surname: String
var phone: Int
var description: String {
return "Person name: \(name), surname: \(surname), phone: \(phone)"
}
}你也应该学会安全地处理选项。!操作符的意思是“崩溃(如果不是零)”。如果用户在电话字段中输入"Hello“,您的代码就会崩溃。
@IBAction func press(_ sender: Any) {
if let name = a.text, let surname = b.text, let phoneStr = c.text, let phone = Int(phoneStr) {
let person = Person(name: name, surname: surname, phone: phone)
print(person)
contacts.append(person)
}
}还请考虑电话号码不是数字值。使用String而不是Int来存储电话号码。
发布于 2017-10-06 22:36:45
print(ViewController.Person)错了
请使用:
print(contacts.last)https://stackoverflow.com/questions/46614785
复制相似问题