D’ailleurs, à priori en analysant les logs:
1- il crée bien un nouveau coureur avec les éléments de la class coureur
2- il ne renvoi pas le print dans la tableView de nom ListeCoureursTVC
if let coureurs = _coureurManager.getCoureur(atIndex: indexPath.row){
cell.textLabel?.text = coureurs.name
print(“test optionnel: (coureurs.name)”)
déjà essayé mais c’est une variable privée donc pas possible. Bizarre…
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: “coureurs-cell”, for: indexPath) /as! CustomCoureurTableViewCell/
j’ai essayé comme ça:
if let coureurs = _coureurManager.getCoureur(atIndex: indexPath.row){
cell.textLabel?.text = coureurs.name
print(“test optionnel: (String(describing: cell.textLabel?.text))”)
Résultat:
Nb d’objets crées:10
l’objet dans la liste lié à son index: coureurs {
_name = SELLEC;
_prenom = TOM;
_sexe = ;
_classe = ;
}
test optionnel: Optional("")
Dans ta classe CoureursManager utilise un singleton :
class CoureurManager {
private static var s_instance: CoureurManager? = nil
public static var shared: CoureurManager? {
if s_instance == nil {
s_instance = CoureurManager()
}
return s_instance!
}
private let _realm: Realm
public let _coureursList: Results<coureurs>
private init() {
_realm = try! Realm()
_coureursList = _realm.objects(coureurs.self)
}
// et la tu déclare toutes tes fonctions en "public func ..."
}
Depuis le début j’ai un problème que je n’arrive pas à résoudre:
J’ai mon objet coureur (name, prénom, sexe, classe) qui est bien créée (vérifié dans Realm Browser + une ligne de tableView est ajoutée à chaque nouvelle création d’une coureur via ma table "coueurEdit). Lorsque je clique sur chaque élément de la table, la console me fait bien apparaitre l’élément correspondant.
MAIS rien n’apparait dans mes ListeCoureurViewController et DataCoureur (équivalent du CredentialController du cours de Maxime).
En regardant avec des Print j’ai l’impression que le problème se situe là:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: “coureurs-cell”, for: indexPath) /as! CustomCoureurTableViewCell/
if let coureurs = _coureurManager.getCoureur(atIndex: indexPath.row){
cell.textLabel?.text = coureurs.name
print("test optionnel: \(String(describing: cell.textLabel?.text))")
}
return cell
}
Dans la console, le print “test optionnel” reste désespérément vide…
oups! En rangeant mon dossier (j’ai enlevé les images qui étaient en vrac dedans) j’avais pas vu que j’avais enlevé le fichier codeproj. Voici le nouveau lien: