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
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
}
}
I have modified your code, you can use it it will give you result what you want.
I have just made one change in print statement. As your contacts array in you view controller itself so you can directly use it by self and use function description for printing updating values of contacts.
print(ViewController.Person)
is wrongPlease use:
You are trying to print the actual
struct
ofPerson
. You want to print a specific instance.You can print the whole array as:
If you want to print the one instance, I would suggest splitting your code a little:
But to make the printing useful you should add the
description
property to your struct and make your struct conform toCustomStringConvertible
.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.And also consider that a phone number is not a numeric value. Use
String
, notInt
to store phone numbers.