2009-12-13 8 views
1

Je reçois une erreur dans Xcode qui dit "whatEverVariable n'est pas déclaré" Cela se passe dans le fichier .m et aussi en dehors de la classe elle-même. J'ai déclaré la variable à l'intérieur des accolades du fichier .h et j'utilise @property et @synthesize pour accéder à la variable. Cependant, je reçois parfois cette erreur au-dessus du fichier .m et même dans d'autres classes où j'ai # importé la classe qui contient la variable. Ai-je manqué quelque chose à propos d'Objective-C en général ici ou quoi? Je suppose que ce que je demande c'est pourquoi les choses ne seraient pas déclarées si elles étaient déclarées.Pourquoi le compilateur dit-il que je n'ai pas déclaré ma variable?

Aussi je reçois « bouton ne peut pas répondre à « setTitle » comme une erreur et cela a été dépréciée ou quelque chose à « setTitle: forState:. » Parce que je ne suis pas envie d'utiliser cette

Je voudrais un exemple mais je pense vraiment que je manque quelque chose d'évident ici Quelqu'un at-il des idées sur ce qui causerait les erreurs? Désolé d'être si général, mais je dois être un crétin ou quelque chose?

Ceci est dit "picturesInArray est non déclaré"

#import <Foundation/Foundation.h> 
@interface Pictures : NSObject { 
    NSMutableArray *picturesInArray; 
} 

@property (nonatomic, retain) NSMutableArray *picturesInArray; 

-(IBAction)pictureButtonPressed:(id)sender; 

@end 


#import "Pictures.h" 
@implementation Pictures 

@synthesize picturesInArray; 

-(IBAction)pictureButtonPressed:(id)sender { 

    if (pictureIndex >= [picturesInArray count] || pictureIndex < 0) { 
     pictureIndex = 0;  

     [imageView setImage:[picturesInArray objectAtIndex:pictureIndex]]; 

     [imageView setNeedsDisplay]; 
    }  
} 
+1

Je suis sûr que vous Il manque quelque chose d'évident, mais il est difficile de dire exactement quelle erreur vous faites sans voir de code. – Chuck

+1

Vous devriez également publier un résumé de la question dans votre titre. Pouvez-vous imaginer se connecter à SO et la page d'accueil a 50 entrées qui disent tous «J'ai une question»? –

+0

Vous devez avoir manqué @end à la fin du bloc d'implémentation. Vous ne montrez pas tout le code, évidemment. Pourrait nous fournir le code complet pour cette classe? Sinon, déposez l'échantillon actuel de toutes les variables redondantes et essayez de le compiler uniquement avec picturesInArray défini. –

Répondre

-1

Cela revient à dire « picturesInArray est noir » Désolé pour le mettre dans « commentaires ci-dessus, il a du mal à lire!

#import <Foundation/Foundation.h> 
@interface Pictures : NSObject { 
    NSMutableArray *picturesInArray; 
} 

@property (nonatomic, retain) NSMutableArray *picturesInArray; 

-(IBAction)pictureButtonPressed:(id)sender; 

@end 


#import "Pictures.h" 
@implementation Pictures 

@synthesize picturesInArray; 

-(IBAction)pictureButtonPressed:(id)sender { 

    if (pictureIndex >= [picturesInArray count] || pictureIndex < 0) { 
     pictureIndex = 0;  

     [imageView setImage:[picturesInArray objectAtIndex:pictureIndex]]; 

     [imageView setNeedsDisplay]; 
    }  
} 
+0

Cela me semble bien. Si j'ajoute "int pictureIndex; NSImageView * imageView;" dans le fichier .h cela fonctionne bien pour moi, sans erreurs ou avertissements. Quel compilateur utilisez-vous? –

0

Pourriez-vous poster l'exemple de code? Je suppose que vous ne déclarez pas le type d'objet/variable que whatEverVariable est à un moment donné. Assurez-vous que votre tête ressemble à ceci:

MyClass.h:

@interface MyClass : NSObject 
{ 
    NSString* whatEverVariable; 
} 

@property(readwrite, assign) NSString* whatEverVariable; 

@end 

MyClass.m:

@implementation MyClass 

//whatever methods 

@synthesize whatEverVariable; 

@end 

Notez que dans votre @property vous déclarez le type de la variable à nouveau . En ce qui concerne le bouton, assurez-vous qu'il est de type NSButton (0).

Avez-vous également importé? Cela importe beaucoup d'en-têtes pour des choses comme NSButton.

+0

Cela signifie que "picturesInArray n'est pas déclaré" #import @interface Images: NSObject { \t NSMutableArray * picturesInArray; } @property (nonatomic, retain) NSMutableArray * picturesInArray; - (IBAction) pictureButtonPressed: (id) expéditeur; @end #import "Images.h" @implementation Images @synthesize imagesInArray; - (IBAction) pictureButtonPressed: (id) expéditeur { if (pictureIndex> = [picturesInArray count] || pictureIndex <0) { pictureIndex = 0; \t [imageView setImage: [picturesInArray objectAtIndex: pictureIndex]]; [imageView setNeedsDisplay]; } \t } – I00I

2

Ce dit » picturesInArray est non déclaré »

Etes-vous sûr qu'il ne dit pas "pictureIndex est non déclaré"? Parce que c'est la variable qui n'est pas déclarée dans le code que vous avez montré

Questions connexes