Ne peut pas trouver le protocole de déclaration

J'ai deux view controllers A et B, et ils ont tous deux les uns les autres comme leurs délégués.

Quand je n'ai rien, à l'exception de définir les protocoles au début de l'en-tête des fichiers et des #import l'autre fichier d'en-tête, j'en ai deux erreurs le long de la lignes de

ne peut pas trouver le protocole de déclaration pour "BDelegate", qui a été montrant dans
A. h (où j'ai écrit ) ne peut pas trouver le protocole de déclaration pour
"ADelegate", qui a été montrant dans B. h (où j'ai écrit )

À la recherche en ligne, les gens avait écrit plus tôt que la circulaire de l'inclusion des fichiers d'en-tête pourrait conduire à des problèmes. Ils ont recommandé, soit à l'aide de #include au lieu de cela, ou @class déclaration comme -

@class A

au lieu de

#import A.h

à l'intérieur de #import B.h

J'ai essayé presque toutes les combinaisons de ces importations, et @classes, et #include, mais ne peut toujours pas se débarrasser des mises en garde. Aussi, les solutions en ligne recommandé de déplacer le #import à la .m fichiers, mais cela n'a pas aidé non plus. Partie de la raison en est que les solutions en ligne sont un peu floue - si vous pouviez briser ce serait génial.

Toutes les suggestions sur ce qui peut être fait pour résoudre ce problème?


-- BigViewController.h --

#import "BaseViewController.h"
#include "BaseViewController.h"

@class BigViewController;

@protocol BigViewControllerDelegate
-(void) BigViewController:(BigViewController *) bigView;
@end

@interface BigViewController : UIViewController <BaseViewControllerDelegate>
{    
     //delegate
     id <BigViewControllerDelegate> delegate;

ivars...    
}

@properties...
@end

--------------------------------------------------

-- BaseViewController.h --

#<UIKit/UIKit.h>

#import "BigViewController.h"
#include "BigViewController.h"

@class BigViewController;

@protocol BaseViewControllerDelegate
- (void) setParametersWithItemChosen:(Item *) item;
@end

@interface BaseViewController : UIViewController <...BigViewControllerDelegate...>
{

   ivars...

   //delegate
    id <BaseViewControllerDelegate> delegate;
}

@properties...
@end
  • Vous pourriez peut-être poster une partie du code (réduit à montrer où vous êtes à la définition de ce qu').
  • Je viens de poster quelques. L'indentation est très bizarre - désolé!
  • Dans l'avenir, l'utilisation de la {} bouton en haut à envelopper le code, ou bien manuellement le format à l'aide du dos de la tique.
  • ok, va garder cela à l'esprit
  • J'ai connu le même problème et résolu encore, à la suite de l' @TwistedUmbrella instruction.
  • 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.
  • Essayez cette stackoverflow.com/questions/10160887/...
  • A connu le même problème, ont juste déplacé le protocole de déclaration ci-dessous uikit d'importation.

InformationsquelleAutor Ak1 | 2011-06-22