10
votes

Xcode 4.2 NsmanagedObject Construire la construction a échoué

J'ai créé un utilisateur usermodel.xcdatamodeld avec une entrée: UserBase et j'ai ajouté un attribut Quel nom est IdroitID et Type est entier 32.

Après cela, je crée des cours pour cela avec fichier-> nouveau fichier-> nsmanagedObject Sous-classe, qui crée UserBase.h et .m automatiquement. p>

dans mon contrôleur a importé le fichier userBase.h et créez une propriété: p>

Undefined symbols for architecture i386:
 "_OBJC_CLASS_$_NSEntityDescription", referenced from:
  objc-class-ref in LoginController.o
 "_OBJC_METACLASS_$_NSManagedObject", referenced from:
  _OBJC_METACLASS_$_UserBase in UserBase.o
 "_OBJC_CLASS_$_NSManagedObject", referenced from:
  _OBJC_CLASS_$_UserBase in UserBase.o
 ld: symbol(s) not found for architecture i386
 clang: error: linker command failed with exit code 1 (use -v to see invocation)


1 commentaires

Essayez d'ajouter la coredata.framework.


3 Réponses :


20
votes

Les symboles non définis signifient généralement que certains framework sont manquants. Les cadres sont des bibliothèques de classes pré-compilées que vous pouvez utiliser sur votre application.

Pour ajouter un cadre sur Xcode 4:

  1. Cliquez sur la racine de votre projet (l'élément situé dans le coin supérieur gauche avec l'icône du plan bleu).
  2. Cliquez sur votre cible (généralement le même nom d'application avec une "une icône de crayons" à gauche).
  3. Cliquez sur l'onglet "Résumé" en haut, puis faites défiler vers le bas ... Réduire les diviseurs et sous "Informations sur le déploiement iPad" Vous trouverez la section "Cray-Frameworks et Bibliothèques" (voir la figure 1 ci-dessous).
  4. Cliquez sur le bouton "+" au bas de cette liste.
  5. Un popup vous demandera de choisir un cadre, de la recherche et de l'avoir sélectionné, cliquez sur Ajouter.

    Et c'est tout! Les classes contenues dans ce cadre seront disponibles sur votre code aussi longtemps que vous faites le bon #Import.

    Figure 1:

    Entrez la description de l'image ici

    Pour maintenir votre projet commandé, je vais suggérer de faire glisser le cadre nouvellement ajouté dans le groupe "Frameworks".


1 commentaires

Aussi ... Ajouter #import dans votre fichier "pch"



3
votes

Si vous avez importé le fichier d'alerte dans votre projet, assurez-vous que la case Cochez cochée sur l'adhésion à la cible! J'ai eu le même problème et après avoir coché la boîte et que l'erreur a disparu!


0 commentaires

0
votes

Essayez de supprimer votre classe NSManèdeObject du projet et de le générer à nouveau. Cela m'a aidé;)


0 commentaires