Bonjour à tous,
Ma question est toute simple et pourtant je ne trouve aucune réponse…
Est-il possible de créer dans Core Data plusieurs entités qui n’ont aucun lien entre elles ? C’est à dire sauvegarder par exemple une entité « livres » avec ses attributs propres et parallèlement une entité « films » avec également ses attributs propres, sans aucune « relationShip » entre elles ?
Si cela est possible, comment faut-il configurer le modèle et déclarer ces entités avec Xcode?
Je vous remercie…
Joel
Bonjour @meyers.joel
Tu peux aussi penser ton entité de cette façon :
Entité Média
- titre
- année
- type : ‘livre’ ou ‘film’ ou ‘cd’ ….
- description
-…
Selon ton projet et tes besoins ça peut être une solution facile. Cependant il peut y avoir rapidement des limites d’évolution à procéder ainsi.
Pour ta question concernant CoreData je ne vois pas ce qui pourrait t’empêcher de faire 2 entités distinctes. Mais je ne connais pas assez le sujet.
Bonsoir,
La réponse est oui !
Tu crées autant d’entités que le souhaites, tu n’as aucun obligation de générer des liens entre entités.
Dans l’exemple ci-dessous, j’ai créé plusieurs entités; il se trouve que, ensuite, j’ai créé des liens, mais ce n’est pas une obligation.
Cordialement,
Nicolas
Super merci à vous deux pour cette réponse ultra rapide !
J’ai bien essayé de créer 2 entities mais je ne vois pas comment utiliser ces données dans mon code…
@Environment(\.managedObjectContext) **private** **var** viewContext
// La déclaration suivante fonctionne...
@FetchRequest(entity: entity1.entity(), sortDescriptors: [NSSortDescriptor(key: "title", ascending: **true**)]) **var** entities1: FetchedResults<entity1>
// Comment déclarer entity2 et la liste de toutes mes entity2 (entities2) ?
// La déclaration suivante génère une erreur. Pourquoi ? Je ne comprends pas...
@FetchRequest(entity: entity2.entity(), sortDescriptors: [NSSortDescriptor(key: "num", ascending: **true**)]) **var** entities2: FetchedResults<entity2>
Si vous pouvez m’apporter un début d’explication, je suis preneur…
Encore merci
Joel
Bonjour,
J’ai créé un nouveau projet iOS SwiftUI en cochant la case « use CoreData ».
Xcode 13.0, Mac sous BigSur 11.6
Le code suivant fonctionne chez moi (il a parfois fallu que je quitte Xcode pour faire disparaître
des erreurs):
Par rapport au projet créé par Xcode,
- j’ai renommé l’entité « item » en « Entity1 »
- j’ai créé l’entité « Entity2 » avec un attribut « timestamp »
Cordialement,
Nicolas
Merci Nicolas, en fait tout fonctionne…
J’ai simplement redémarré Xcode et mon mac sur tes conseils.
A l’ouverture de mon projet, il n’y avait plus aucune erreur.
Je vais pouvoir continuer d’avancer.
Je compte sur vous si jamais je me retrouvais une nouvelle fois bloqué…
Encore merci,
Joel