2010-03-13 3 views
1

Ma tête est sur le point d'exploser avec cette logique, quelqu'un peut-il m'aider?Question de classe Objective-C?

classe A de classe B. classe A appelle la méthode A dans la classe B.

Cela fonctionne très bien

classe B veut envoyer une réponse à la classe A d'une autre méthode qui est appelée à partir de Méthode A. Si vous #importez la classe A de la classe B, il s'agit en fait d'une boucle infinie et tout se bloque.

Existe-t-il un moyen de le faire correctement, comme une chose de type parent?

BTW, je développe pour iPhone.

EDIT Quand je #import classe A de la classe B je reçois cette erreur du compilateur ...

error: expected specifier-qualifier-list before 'StoreHoursCore' 

Toutes les idées?

+1

C'est __not__ créant une boucle infinie. La directive '# import 'empêche qu'un fichier ne soit inclus plusieurs fois. S'il vous plaît décrire l'erreur de compilation que vous obtenez de le faire. – zneak

Répondre

7

Je crois que l'utilisation de la directive @class devrait résoudre votre problème.

L'utilisation de @classavant déclare votre type de classe afin que le compilateur ne tousse pas.

Jetez un coup d'œil à ce question sur SO.

+1

Je voudrais ajouter que cela s'appelle "déclaration avant" – Vladimir

+0

vous continuez à taper la même chose secondes avant que je fais:/ –

+0

@Vladimir, édité, merci! –

3

Utilisez @class pour transférer le déclarer en tant que classe. Cela indique au compilateur de savoir qu'il s'agit d'une classe, sans avoir à inclure et à compiler la classe plusieurs fois (la raison pour laquelle vous obtenez votre erreur). à savoir:

@class myClass; 

La #import directive préprocesseur dispose d'une protection contre les multiples comprend, mais la directive #include ne fonctionne pas.