Core Data: instancier une classe

RocouRocou Membre
re-bonjour,

Dans un modele classique, disons:

Entreprise (nom, adresse)
Employés (nom)

Et une relation entre Entreprise et Employés

Je sèche pour instancier Entreprise...

En gros j'aimerais faire une truc du genre:
&nbsp; &nbsp; NSManagedObjectContext *context;<br /><br />&nbsp; &nbsp; Entreprise *monEntreprise = (Tournee *)[NSEntityDescription insertNewObjectForEntityForName:@&quot;Entreprise&quot; inManagedObjectContext:context];<br />&nbsp; &nbsp; monEntreprise.nom = @&quot;Entreprise Toto&quot;;<br />&nbsp; &nbsp; NSLog(@&quot;Entreprise: @&quot;,monEntreprise.nom);<br />


Donc dans l'ordre,
Créer une instance de ma classe Entreprise, modifier le nom de l'entreprise créée et afficher ce dernier.

En outre, je ne comprends pas comment faire le lien entre NSManagedObjectContext et ma classe Entreprise?

(Sinon, rien à  voir mais sous Xcode 3, je faisais un clic droit sur un terme dans mon code et je pouvais choisir d'aller directement regarder sa définition dans la doc. Cela ne semble plus possible avec xCode4. Y-t-il une solution pour réactiver cette option bien pratique?)

Réponses

  • Eddy58Eddy58 Membre
    juin 2011 modifié #2
    dans 1308667310:

    En gros j'aimerais faire une truc du genre:
    &nbsp; &nbsp; NSManagedObjectContext *context;<br /><br />&nbsp; &nbsp; Entreprise *monEntreprise = (Tournee *)[NSEntityDescription insertNewObjectForEntityForName:@&quot;Entreprise&quot; inManagedObjectContext:context];<br />&nbsp; &nbsp; monEntreprise.nom = @&quot;Entreprise Toto&quot;;<br />&nbsp; &nbsp; NSLog(@&quot;Entreprise: @&quot;,monEntreprise.nom);<br />
    



    Ton code tel quel est presque fonctionnel. Est-il dans la classe modèle Entreprise ?
    Tu dois normalement récupérer le MOC dans l'App Delegate.

    &nbsp; &nbsp; <br />&nbsp; &nbsp; Entreprise *monEntreprise=[NSEntityDescription insertNewObjectForEntityForName:@&quot;Entreprise&quot; inManagedObjectContext:[[[UIApplication sharedApplication] delegate] managedObjectContext]];<br /><br />&nbsp; &nbsp; monEntreprise.nom=@&quot;Entreprise Toto&quot;;<br />&nbsp; &nbsp; monEntreprise.adresse=@&quot;Entreprise adresse&quot;;<br /> <br />&nbsp; &nbsp; NSLog(@&quot;Entreprise Nom: @&quot;,monEntreprise.nom);<br />&nbsp; &nbsp; NSLog(@&quot;Entreprise Adresse: @&quot;,monEntreprise.adresse);<br />
    
  • RocouRocou Membre
    21:42 modifié #3
    dans 1308667974:

    Ton code tel quel est presque fonctionnel. Est-il dans la classe modèle Entreprise ?
    Tu dois normalement récupérer le MOC dans l'App Delegate.

    &nbsp; &nbsp; <br />&nbsp; &nbsp; Entreprise *monEntreprise=[NSEntityDescription insertNewObjectForEntityForName:@&quot;Entreprise&quot; inManagedObjectContext:[[[UIApplication sharedApplication] delegate] managedObjectContext]];<br /><br />&nbsp; &nbsp; monEntreprise.nom=@&quot;Entreprise Toto&quot;;<br />&nbsp; &nbsp; monEntreprise.adresse=@&quot;Entreprise adresse&quot;;<br /> <br />&nbsp; &nbsp; NSLog(@&quot;Entreprise Nom: @&quot;,monEntreprise.nom);<br />&nbsp; &nbsp; NSLog(@&quot;Entreprise Adresse: @&quot;,monEntreprise.adresse);<br />
    


    Merci pour ta réponse.
    Pour le moment, mon code se trouve dans la méthode "viewDidLoad" de mon controlleur. Dans ce dernier j'y ai ajouté
    #import &quot;Entreprise.h&quot;
    
    .

    Mais j'ai toujours un crash au même endroit sur cette ligne:
    Entreprise *monEntreprise=[NSEntityDescription insertNewObjectForEntityForName:@&quot;Entreprise&quot; inManagedObjectContext:[[[UIApplication sharedApplication] delegate] managedObjectContext]];
    


    Avec cette erreur:
    reason: &#039;+entityForName: could not locate an NSManagedObjectModel for entity name &#039;Entreprise&#039;&#039;
    
  • Eddy58Eddy58 Membre
    21:42 modifié #4
    La méthode - (NSManagedObjectContext *)managedObjectContext est bien implémentée dans l'App delegate ?
  • RocouRocou Membre
    21:42 modifié #5
    dans 1308671624:

    La méthode - (NSManagedObjectContext *)managedObjectContext est bien implémentée dans l'App delegate ?


    Heu non. Où puis-je trouver cette méthode?
  • Eddy58Eddy58 Membre
    21:42 modifié #6
    Normalement elles sont toutes implémentées par défaut quand tu crées ton projet, en cochant "Core data". Sinon il est toujours possible de les implémenter ensuite bien sûr.
  • RocouRocou Membre
    21:42 modifié #7
    dans 1308675921:

    Normalement elles sont toutes implémentées par défaut quand tu crées ton projet, en cochant "Core data". Sinon il est toujours possible de les implémenter ensuite bien sûr.

    Ha ok merci. Comme j'ai décidé d'utiliser Core Data bien après le commencent de mon app, tout n'a pas été généré par défaut. Je vais créer un projet bidon pour récupérer le code. Merci pour ton aide!
Connectez-vous ou Inscrivez-vous pour répondre.