I have three textifleds that I am using to append data into a struct. How can I print what I appended? Right now I am getting a error message.
import UIKit
cla
You are trying to print the actual struct
of Person
. You want to print a specific instance.
You can print the whole array as:
print("contacts: \(contacts)")
If you want to print the one instance, I would suggest splitting your code a little:
@IBAction func press(_ sender: Any) {
let person = Person(name: a.text!, surname: b.text! , phone: Int(c.text!)!)
print(person)
contacts.append(person)
}
But to make the printing useful you should add the description
property to your struct and make your struct conform to CustomStringConvertible
.
struct Person: CustomStringConvertible {
var name: String
var surname: String
var phone: Int
var description: String {
return "Person name: \(name), surname: \(surname), phone: \(phone)"
}
}
You should also learn to safely deal with optionals. The !
operator means "crash if not nil". Your code will crash if the user types in "Hello" into the phone field.
@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)
}
}
And also consider that a phone number is not a numeric value. Use String
, not Int
to store phone numbers.