2010-09-10 6 views
0

Donc je travaille sur iPhone et tout va de mieux en mieux. Sauf pour les deux dernières heures. J'étais en train d'éditer une classe, puis sauvé et construit et soudainement j'avais des tonnes d'erreurs dans un autre fichier d'implémentation de classe. Il semble que toutes les erreurs ont à voir avec les membres de la classe (variables) car les seules erreurs que j'ai sont "objet non déclaré", ces objets étant les membres de la classe. Syntaxe est ok et tout, donc je crois que ce n'est pas quelque chose comme ça. Quelqu'un at-il déjà eu ce problème?Le compilateur Xcode 4 ne voit pas ma variable d'instance

Exemple:

Foo.h 

@interface Foo : NSObject 
{ 
@private 
    int m_1; 
    NSString *m_2; 
    NSDictionary *m_3; 
} 

-(id) init; 
-(void) dealloc; 
-(int) bar; 
-(int) barWithFoo:(Foo *)foo; 

@end 

Foo.m 

#import "Foo.h" 

@implementation Foo 

-(id) init 
{ 
    return self = [super init]; 
} 

-(void) dealloc 
{ 
    // code 
} 

-(int) bar 
{ 
    if (m_1 > MAX_DECL) /* error here, m_1 undeclared */ 
    { 
     // do stuff 
    } 

    NSLog(m_2); /* error here, m_2 undeclared */ 
} 

// etc... 

@end 
+0

Pourriez-vous avoir un autre 'Foo.h' quelque part dans le chemin de recherche? –

+0

Êtes-vous capable de reproduire le problème avec le code que vous avez écrit pour votre question? Sinon, nous aurons besoin de voir le code réel qui produit les erreurs. –

+0

Notez également que Xcode 4 est sous NDA, donc nous ne pouvons pas en parler ici. Si quelque chose ne fonctionne pas, essayez-le dans Xcode 3, et si cela fonctionne, vous devriez signaler un bug sur 4. https://bugreport.apple.com/ –

Répondre

1

Un peu question non spécifique, il est difficile d'aider à cette information disponible ... Cependant, je vérifier les déclarations #import pour vous assurer que tous les fichiers sont inclus. Assurez-vous également que vous n'avez pas renommé une classe (il peut s'agir d'une faute de frappe) et que la déclaration en .h et la définition en .m portent le même nom.

+0

Oui J'ai vérifié toutes les déclarations # import et le nom est correct. Les fichiers sont également dans le bon dossier et j'édite les bons fichiers. Je ne peux pas vraiment poster tout le fichier d'implémentation de la classe, mais en gros c'est comme je l'ai décrit, d'ailleurs j'ai édité l'OP. –

+1

Je suppose que vous avez essayé de reconstruire complètement, n'est-ce pas? Effacez tous les fichiers temporaires manuellement. – Gobra

+0

Oui, j'ai nettoyé toutes les cibles et reconstruit plusieurs fois. –