Recuperer outlet et changer textfield avec Realm


#1

Bonsoir,
J’essaye de récupérer un texte pour créer un player avec la classe “Personne” qui attribue le prénom du texfield. J’ai des problèmes avec le init comme j’utilise Realm. L’étape suivante serait d’inscrire player dans une BDD mais je n’arrive déjà pas à récupérer une valeur. Merci pour votre aide.


#2

Ne devrais tu pas avoir

let person = new Personne(“nom”) ?

Retire le public de ta declaration des attributs de ton modele pour voir.
Et retire le init. si tu ne l’utilise pas.

import RealmSwift

class Personne: Object {
    @objc dynamic var firstname: String = ""
}

Meme si le projet n’en est qu’au début, le meilleur conseil que je puisse te donner est de partir immédiatement sur un code super propre, soit en nommant les classes, variables, methodes et en les organisant aussi.

class Personne : ok
player1 = new Personne () ? pourquoi player1. pourquoi pas player, ou meme personne car si j’ai compris l’application il ne s’agit pas de joueur, mais de personnes.

Préfère laisser les overrides en premier et ton code après. (c’est personnel, mais je trouve qu’on s’y retrouve mieux après)


#3

Dans le cas de l’erreur affichée je pense que le problème vient tout simplement d’une action modifiée après qu’elle ait été créée par Interface Builder. Par exemple, le paramètre sender:Any tu ne l’aurais pas ajouté après avoir créé l’action avec IB ? Retire le et ça devrait marcher. Si tu as besoin de se paramètre, alors supprime ton action dans IB et recrée-la en laissant l’option “sender” au moment de la création.
J’ai fait une vidéo sur les erreurs courantes avec les outlets et actions ; tu devrais la trouver dans les premières vidéos du cours, juste après avoir expliqué ce que sont les outlets et les actions.


#4

Effectivement les noms de mes classes sont un peu mal fichues. J’ai enlevé “public”. En fait j’ai besoin du ini() parce qu’il faut obligatoirement rentrer certaines données mais avec Realm j’ai dû utiliser une autre chose parce que les “init” ne sont pas encore compatibles. Effectivement j’ai ajouté ‘sender : Any’ après et il y avait deux event pour un même bouton.
Merci pour votre aide ! Maintenant comment réussir à faire marcher le init() ?


#5

Pour le init(), retire “convenience” je ne pense pas que tu en ai besoin dans ton cas.