Cours utilisation de Core Data

Salut à tous,

Je suis en ce moment sur le cours « Créer des apps iPhone avec SwiftUI ». Seulement là je bloque un peu sur une erreur à l’utilisation de l’app Tasks. Je viens de faire les liens entre l’interface graphique et le gestionnaire de données. Dans le simulateur, je saisis ma nouvelle tâche et au moment de cliquer sur le bouton +, xCode m’affiche dans le fichier TasksApp en face de @main, ceci :
Thread 1: « An NSManagedObject of class ‹ CDTask › must have a valid NSEntityDescription. »

J’imagine qu’il s’agit d’une exception non gérée dans ce que j’ai fait (j’ai pourtant cru tout bien refaire).
Quelqu’un aurait un idée, ou le mieux et de recommencer le cours à 0?

Hello,

Je n’ai pas le cours sur swiftUI donc je ne peux pas voir a quoi tu fais reference.
Je ne pense pas que recommencer de 0 soit utile.
Tu peux te repasser les parties sur la creation du model pour verifier que tous les paramètres sont ok.

Voici quelques pistes pour essayer de résoudre cette erreur:

  1. Dans ton fichier xcDataModel, vérifie bien que le nom de ton entity est bien le meme que celui de ta class.
    (Selectionne ton entité dans la colonne de gauche et vérifie les infos dans la colonne de droite)
    Capture d’écran 2021-05-20 à 08.46.57

  2. Toujours dans la colonne de droite, tu as un picker codeGen, sa valeur doit être « class Definition »
    Capture d’écran 2021-05-20 à 08.47.58

  3. Dans ton fichier de class, au dessus de la déclaration tu dois avoir un modifier de ce type

@objc(<nom de la classe>)

Seb.

Merci s0ta pour cette réponse très claire et imagée. C’est vraiment sympa de prendre du temps pour aider les autres.

J’ai suivis tes recommandations mais je ne doit pas être sur la même version de xCode, ce n’est pas présenté de la même manière. Ou je ne suis pas au bon endroit…

J’ai réussis entre 2 à trouver mon erreur. Celle-ci se trouvait ici
let container = NSPersistentContainer(name: « Tasks »)

A la place de Tasks (nom de l’app) j’avais saisis « CDTask ».

Encore merci en tout cas.

1 J'aime