“Impossible de trouver l'interface de déclaration de NSObject”?
J'ai donc fait quelques recherches sur ce problème, mais je n'ai pas trouvé quelque chose de semblable pour l'instant...
Je suis donc à coder un jeu en Obj-C avec Xcode et Sparrow Cadre. J'ai travaillé sur le simulateur jusqu'à ce point, et c'est tout l'été se passe bien. Mais quand je passe en cours d'exécution sur mon appareil, je reçois toutes sortes d'erreurs pour des choses qui devraient être la norme, par exemple "Impossible de trouver l'interface de déclaration de NSObject", "Unknown type name 'NSMutableArray'" etc. J'ai déjà #import dans chaque classe, donc on pourrait penser que cela ne devrait pas arriver, non? J'ai l'impression que c'est juste une ligne ou deux qui a besoin de changer quelque chose quelque part, mais je n'ai pas la moindre idée de ce ou où.
Si quelqu'un a des conseils, il serait très apprécié. 🙂
EDIT: Voici une capture d'écran de l'un de la .h les fichiers que des erreurs - il semble être la seule à être dans certains de la .h les fichiers que j'ai créé. http://i.imgur.com/EuQh4.png
#import <Foundation/Foundation.h>
à votre préfixe.pch pour voir si il efface les avertissements.Juste vérifié Application_Prefix.pch - elle est déjà là, avec <UIKit/UIKit.h> et "Moineau.h" O. o
Est Fondation figurant dans votre dossier frameworks? Êtes-vous un lien vers elle dans vos paramètres de la cible?
Oui à la première question, et je n'ai pas la moindre idée de la seconde XD Désolé, encore un peu vert à l'Obj-C/Xcode.
Ok, juste vérifié Liés Cadres et des Bibliothèques - j'espère que c'est la que tu parlais et je vois de la Fondation.cadre là.
OriginalL'auteur Dylan Beck | 2012-01-24
Vous devez vous connecter pour publier un commentaire.
On dirait que vous avez une référence circulaire dans un de vos fichiers d'en-tête.
Cela peut se produire lorsque foo.h #importations "de la barre.h" et d'un bar.h #importations "foo.h" (ou, parfois, de ses une chaîne de trois ou plusieurs fichiers d'en-tête de l'importation les uns les autres dans un cercle) et il conduit à des erreurs comme celle que vous voyez.
La solution est d'essayer d'éviter d'importer des en-têtes dans votre .h les fichiers, et au lieu d'utiliser @références de classe pour les classes externes dans le .h de fichiers et de mettre le #importations dans le .m les fichiers. Donc au lieu d'écrire:
Dans votre .h fichiers, chaque fois que possible de mettre:
Dans votre .h de fichier, et de mettre l'instruction #import dans votre .m fichier à la place.
Pourtant, je ne l'obtenez pas. Quand j'utilise l'instruction d'importation (au lieu de l'inclure), plusieurs d'inclusion doivent être manipulés et empêché, c'est pourquoi je ne vois pas vraiment une raison possible de ce comportement.
le
import
déclaration empêche un même fichier importé plus d'une fois, mais il ne résout pas circulaire inclusions: Supposons qu'Un fichier importations de fichiers B et le fichier B importations de fichier; fichier Un n'a pas été entièrement importés par le temps, fichier B essaie de l'importer à nouveau, et si le fichier B a besoin de se référer à des choses déclarées dans Un fichier après leimport B
déclaration, alors il ne peut pas car il n'a pas analysé la partie encore.OriginalL'auteur Nick Lockwood
Cela peut être causé par n'incluant pas UIKit.
Ajouter à votre en-tête:
Aussi assurez-vous d'ajouter le UIKit Cadre de votre projet. (Les Objectifs Et Les Phases De Construction/Lien Binaire Avec Les Bibliothèques/-- Sélectionnez Ajouter --- Ajouter UIKit.Cadre)
Ouais c'est très important pour Xcode 6 et iOS 8+ SDK.
vous enregistrez mon temps merci beaucoup 😉
C'est en fait parce que des projets Xcode utilisé pour inclure un préfixe.pch fichier contenant #include <UIKit/UIKit.h>, mais maintenant ils ne le font pas.
merci, Cela m'a vraiment aidé
OriginalL'auteur Danoli3
Essayez plutôt ceci pour le Cacao ou de l'application iOS, assurez-vous de l'importation de la "Foundation/Foundation.h" dans votre classe où vous héritant de la classe NSObject.
OriginalL'auteur Reetesh Kumar
Essayer de supprimer les données obtenues pour le projet. Vous pouvez le faire par l'organisateur, dans le cadre de projets. Vous pourriez avoir de la corruption en-tête précompilé.
Ok, peut-être pas tout de suite, mais juste au cas où, allez à la
/Users/<username>/Library/Developer/Xcode/DerivedData
et trouver le dossier du projet, et de le supprimer. Il est sûr de supprimer tous les dossiers ici si vous ne savez pas lequel est le bon, Xcode juste pour indexer vos fichiers source.Est allé à aller vérifier, mais il n'y a pas de données là-bas pour commencer. C'est un peu un mystère!
Il peut ne pas avoir travaillé pour l'OP, mais il a travaillé pour moi! Merci!!!!
OriginalL'auteur joerick
Assurez-vous que vous n'utilisez pas un Nom de Classe qui est déjà pris. J'ai eu le même problème quand j'ai appelé une de mes Classes "Signal", qui fait déjà partie de la Fondation.
OriginalL'auteur d4n13l
Assurez-vous également que vous n'êtes pas, y compris un Objectif-C fichier à partir d'un
.cpp
ou.c
fichier.Exemple: un
PhotoManager.mm
peut inclure le fichier d'en-tête de l'Objective-C pairePhotoObject.h
/PhotoObject.mm
.Alors, si
MyAwesomeCppFile.cpp
comprendPhotoManager.h
, tout à coupPhotoObject.h
ne sais pas de base Objective-C et classes de mots-clés.Une solution serait d'utiliser
#ifdef __OBJC__
si vous pouvez sortir avec elle.Sinon désigner le
.cpp
type de fichier commeObjective-C++ Source
dans les propriétés du fichier de panneau de configuration (en Haut à droite de la fenêtre de contrôle => "l'Identité et le type")OriginalL'auteur Luc Bloom
J'ai fait face à une erreur similaire, il résolu quand j'ai remarqué que j'avais fait quelque chose de remarquablement stupide.
Dans mon
foo.m
fichier, j'avais oublié de#import "foo.h"
L'erreur s'est résolu lorsque j'ai ajouté la ligne d'importation.
OriginalL'auteur suryashekhar