2010-04-28 11 views
0

J'essaie de créer une nouvelle méthode dans mon fichier TapDetectingImageView et elle m'indique qu'elle ne peut pas trouver la méthode même si je l'ai déclarée dans le fichier .h. Les trois avertissements spécifiques pointent tous vers la ligne @end dans le fichier .m quand je le construis et ils disent: "Implémentation incomplète de la classe 'TapDetectingImageView'; 'Définition de la méthode pour' -functionA: 'introuvable'; "Définition de la méthode pour '-functionB:' not found"Message d'erreur lors de l'insertion de la méthode dans touchesBegan

Qu'est-ce qui me manque? Ne suis-je pas autorisé à le faire dans un fichier de protocole comme TapDetectingImageView?

Dans mon fichier .h est:

@interface TapDetectingImageView : UIImageView <AVAudioPlayerDelegate> { 

id <TapDetectingImageViewDelegate> delegate; 

} 

@property (nonatomic, assign) id <TapDetectingImageViewDelegate> delegate; 

-(void) functionA:(NSString*)aVariable; 
-(void) functionB:(NSString*)aVariable; 

@end 

Dans mon fichier .m est:

-(void)functionA:(NSString*)aVariable { 

// do stuff in this function with aVariable 

} 

-(void)functionB:(NSString*)aVariable { 

// do stuff in this function with aVariable 

} 
+0

avez-vous importer les fichiers d'en-tête appropriés? – shosti

+0

Oui, le fichier .m importe le fichier .h où les méthodes sont définies ... c'est quelque chose d'étrange qui se passe. Dans tous les autres jeux .m et .h, cela fonctionne bien, mais pas dans TapDetectingImageView exemple – iwasrobbed

Répondre

0

je me suis dit dehors ... je devais les déclarer comme des méthodes privées au sein de la. m pour les faire fonctionner et ensuite les appeler [self methodName:variableIn] ... pour une raison quelconque, ils ne fonctionneraient pas si je les déclarais dans le fichier .h.

je les déclare comme celui-ci dans le fichier .m juste après les fichiers d'importation et avant implementation:

@interface TapDetectingImageView() 
// Private Methods 
-(void)functionA:(NSString *)aVariable; 
-(void)functionB:(NSString *)aVariable; 
@end