Passage de données "safety first", ça passe pas!😩

Suite du sujet Passage de données entre différentes vues :

Hello, je suis en train de lire ton autre post pour voir si il est possible de t’aider mais pas simple car il manque qq parties de code.

Quelques remarques :
*Tu devrais typer tes variables, cela sera + simple pour toi pour te relire.

  • Je ne vois pas de “collectionview” pour stocker tes datas et alimenter ta tableview
  • Il me semble + simple de mettre une property sur ton controleur de destination. Lors du prepareforsegue, tu récupère le coureur et tu initialises ta property avec.
    Dans le viewDidLoad du controleur cible, tu recuperes ton objet depuis la property pour remplir tes uicontrols
    *Pour le retour, regarde les delegate c’est + élégant (et plus propre/simple à mes yeux) et gère tes boutons abort/save avec plutôt qu’avec un unwind…

ps : désolé pour la mise en forme mais je suis sur un téléphone là…

Jc.

Salut JC,

merci pour ta réponse.
Cependant, les concepts que tu utilises sont “chinois” pour moi car j’en suis à essayer de comprendre et reproduire le cours de Maxime en l’adaptant à mon contexte de travail.

Hello,

Tu as bien ton “unWindToReturnToList” qui s’affiche dans ta console quand tu cliques sur “Save” ?
Et dans ta capture d’écran sur la segue, on ne voit que le @IBAction quand tu cliques sur “Cancel” et pas celui quand tu cliques sur “Save”.

Et puis, tu n’aurais pas dû recréer un sujet, l’autre est remonté automatiquement dans le fil de la communauté donc ça fait un peu double usage, et c’est pas pratique de ne pas avoir les captures d’écran quand je suis en train de te répondre :wink:

Salut,
ah oui, désolé d’avoir remonté le message. Ça fait 2 jour que je bloque là-dessus et je voulais être sur qu’il apparaisse comme le précédent datait de plusieurs mois. Je le ferai plus…:blush:

voici une nouvelle capture. Oui, j’ai bien tout qui s’affiche au niveau Print.

voici à nouveau la segue:

Pour info, en mettant les flèches de lignes, je me rends compte que le nombre de flèches correspond bien au nombre d’entrées dans la BD. Mais rien ne s’affiche.

Est-ce que l’on rentre bien dans ta condition

if let coureurs = _coureurManager.getCoureur (...)

Essaye de mettre un print dedans pour être sûr que ton cell.textLabel.text soit bien pris en compte.

J’en ai pas l’impression. J’ai fait un print
if let coureurs = _coureurManager.getCoureur(atIndex: indexPath.row){
cell.textLabel?.text = coureurs.name
print(« test optionnel: (coureurs.name) »)
et ça n’imprime rien mais en 6 exemplaires!:

On avance :slight_smile:

Tu peux faire un imprime écran de ta classe où tu définis ton coureurManager ?

Avec plaisir!

Par contre, tu dis qu’ils sont bien créés dans Realm c’est ça ?

oui, en voici une dernière capture après les derniers tests:

Parce que le getCoureur dans la classe ne fait aucunement appel à Realm donc tu ne risques pas de récupérer les coureurs !
Je ne connais pas bien Realm du tout mais je vais essayer de voir comment est-ce que l’on récupère les données.

Ah si, pardon, il y a un _coureursList[index] qui est censé être le résultat de la recherche dans Realm…

Bin si dans la mesure ou elle renvoi un objet de type coureur, non? J’ai une class coureur avec nom, prénom, sexe et classe.

Oui oui j’ai édité ma réponse :wink:
C’est tellement vague pour moi Realm, je ne l’utilise pas du tout donc je n’ai pas l’habitude dans la lecture du code :stuck_out_tongue:

Pour savoir vraiment où tout passe, il faudrait que tu mettes 3 prints dans les endroits clés d’appel à Realm pour savoir là où ça coince.

J’arrive pas a faire apparaitre l’index

j’ajoute les lois complets au cas ou car apparaissent bien les numéro d’index et le count

Tu peux faire une copie complète de ce que te dit la console ?
Car là, l’extrait, je ne sais pas si à quel print ça correspond :slight_smile:

Edit : tu as été plus rapide que moi :wink:

j’ai l’impression que le problème vient de la tableView qui ne récupère pas l’index ou alors au niveau du code pour afficher le nom. Car dans realm, ça à l’air de fonctionner.