Ne peut pas trouver le protocole de déclaration de 'MyObjectViewDelegate" lorsqu'il est CLAIREMENT là ?1
J'ai une classe comme ça..
#import "MyObjectAddView.h"
#import "MyAppDelegate.h"
#define myAppDelegate (MyAppDelegate *) [[UIApplication sharedApplication] delegate]
@class MyObjectAddView;
@interface AccountViewController : UIViewController <UIScrollViewDelegate, MyObjectAddViewDelegate, UIImagePickerControllerDelegate> {
MyObjectAddView *myAddView;
.....
}
@property (nonatomic, retain) IBOutlet MyObjectAddView *myAddView;
- (id) initWithSettings:(SettingsObject *)settings;
@end
POURQUOI est-il soudainement de me dire qu'il Ne peut pas trouver le protocole de déclaration de 'MyObjectAddViewDelegate' quand je suis clairement l'importation et y compris le @de classe pour le cas où le protocole est défini? Voici comment MyObjectAddView de l'installation:
#import <UIKit/UIKit.h>
#import "MyAppDelegate.h"
#define myAppDelegate (MyAppDelegate *) [[UIApplication sharedApplication] delegate]
@protocol MyObjectAddViewDelegate;
@interface MyObjectAddView : UIView <UITextFieldDelegate> {
@private
id <MyObjectAddViewDelegate> delegate;
....
@public
.....
}
@property(nonatomic, assign) id <MyObjectAddViewDelegate> delegate;
.....
@end
@protocol MyObjectAddViewDelegate <NSObject>
//expense == nil on cancel
- (void)myObjectAddViewDidFinish:(MyObjectAddView *)addView;
@end
Tout semble parfaitement installation et je ne vois pas l'objet d'une circulaire importations ?! Toutes les suggestions pourquoi il ne pourrait pas voir la définition de protocole dans MyObjectAddView?
Grâce.
- Vérifiez vos fichiers inclus.<br> C'est un symptôme de deux mutuellement compris les en-têtes.<br> Parfois, il l'origine de cette erreur.
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'une référence directe à une classe après avoir importé l'en-tête de la classe. Seul le temps de vous faire une référence vers l'avant est si vous prévoyez, y compris l'en-tête à l'intérieur de la mise en œuvre de fichier. Supprimer
@class MyObjectAddView
et si cela résout-il laissez-moi savoir si pas j'ai peut-être une autre solution pour vous.MyObjectAddView *myAddView
dire prévue spécificateur-qualifier-liste avant MyObjectAddView dont je n'ai aucune idée de ce que cela signifie. Cette erreur disparaît, si je comprend la référence vers l'avant ainsi. Donc supprimer il ne permet pas de résoudre le problème. Retirer toujours dit qu'il ne trouve pas le protocole de déclaration. hmmSynthèse de la discussion: une autre solution est de vérifier pour les importations entre le délégué de la mise en œuvre et du protocole de déclaration. Cela a résolu mon problème.