Utiliser une classe pour générer un profile lors d'un clique sur bouton


#1

Bonsoir!
J’aimerai que lorsque d’un clique sur un bouton cela créé un profil avec le nom , prénom etc
Puis l’afficher dans la console. Seulement lorsque je clique l’app freeze. Ca a l’air simple mais je dois passer à coté de quelque chose.
Merci

//
// ViewController.swift
// Généalogie
//
// Created by X on 31/10/2018.
// Copyright © 2018 X. All rights reserved.
//

import UIKit
class ViewController: UIViewController {

func _new_user() -> Void {
    let player1=Personne(name:"Bob",surname: "Morane", gender: "Male", date_born: 01091996)
    print(player1._name)
}

@IBAction func Add_button() {
    _new_user()
}
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

}

Et le fichier avec la classe

//

// Personne.swift

// Généalogie

//

// Created by X on 31/10/2018.

// Copyright © 2018 X. All rights reserved.

//

import Foundation

class Personne {

public var _name:String

public var _surname:String

public var _gender:String

public var _dateborn:Int?

public var _datedie:Int?

init (name:String,surname:String,gender:String,date_born:Int?) { // mandatory when declared !!!

_name = name

_surname = surname

_gender = gender

_dateborn = date_born

_datedie= nil // Initalized but not mandatory when declared

}

}


#2

Au premier regard, je ne vois rien de suspect.

Tu devrais éviter de mettre des _ partout dans le code. On réserve généralement ça pour les variables privées d’une classe. Et JAMAIS dans le nom d’une fonction, comme _new_user() !

Pourquoi déclarer les variables de la classePersonne en public var ? Elles le sont déjà par défaut …

Pourquoi déclarer la date de naissance sous forme d’un optionnel ? La date de mort, d’accord… Mais la naissance est (généralement) un paramètre fixe.


Tu t’es peut-être trompé d’événement en connectant ton bouton. Certains événements se produisent sans cesse, tant que le doigt de l’utilisateur ne quitte pas l’écran. C’est peut-être ce qui t’arrive, un événement récurrent déclenchant sans cesse la création d’un nouvel objet Personne(). Si c’est le cas, le nom “Bob” doit s’afficher à l’infini dans la fenêtre de la console.

La prochaine fois que tu as un problème, fait une copie d’écran de la console pour nous la montrer.


#3

Merci pour ces précisions. En fait c’est pour créer une fiche d’identité mais la date de naissance n’est forcement connue? J’essaye déjà de rentrer les infos dans une BDD avec Realm.