Je travaille avec CoreData, sur une entité appelée "RoleName".
Le problème est le suivant: je clique sur "Créer une sous-classe NSManagedObject" à partir de mon modèle, et il crée donc automatiquement les classes de mon entité.
Cependant, sur la déclaration de la classe, j'obtiens cette erreur:
Redéclaration non valide de "RoleName"
même si je n'ai pas d'autre classe du même nom.
C'est parce que Xcode gère tout cela par lui-même. Je l'ai ressenti comme un problème car les classes générées automatiquement n'ont pas toutes mes propriétés.
Suivez donc ces étapes pour obtenir ce qu'il était:
Définissez Class.codegen sur Manual/None
De Apple: Quoi de neuf dans Core Data
Génération automatique de sous-classes Xcode
Xcode prend désormais en charge la génération automatique de sous-classes NSManagedObject dans l'outil de modélisation. Dans l'inspecteur d'entité:
Manuel/Aucun est le comportement par défaut et précédent; dans ce cas, vous devez implémenter votre propre sous-classe ou utiliser NSManagedObject. Category/Extension génère une extension de classe dans un fichier nommé comme ClassName + CoreDataGeneratedProperties. Vous devez déclarer/implémenter la classe principale (si dans Obj-C, via un en-tête, l'extension peut importer nommé ClassName.h). La définition de classe génère des fichiers de sous-classe nommés comme ClassName + CoreDataClass ainsi que les fichiers générés pour Category/Extension.
Les fichiers générés sont placés dans DerivedData et reconstruits sur la première version après l'enregistrement du modèle. Ils sont également indexés par Xcode, donc un clic de commande sur les références et une ouverture rapide par nom de fichier fonctionne.
Vous n'avez pas besoin de créer manuellement des sous-classes pour NSManagedObjects
.
Je vous suggère de supprimer les fichiers que vous avez créés avec NSManagedObjects
(les déplacer dans la corbeille) et d'aller à chaque entité dans l'inspecteur DataModel sous Codegen
sélectionnez: Manual / None
et créer que les sous-classes.