Je construis un framework Xcode personnalisé, et j'ai une classe appelée AXController
qui a une méthode de classe appelée showActivationWindow
. showActivationWindow
initialise et affiche une fenêtre en utilisant AXWindowController
qui est une sous-classe de NSWindowController
. Ensuite, AXWindowController
appelle activate
qui est une méthode de classe dans AXController
sur un bouton appuyer dans la fenêtre qu'il affiche.Un bon moyen de structurer les classes dans le framework Xcode
I inclus dans AXWindowController.h
AXController.h
et inclus dans AXController.h
AXWindowController.h
si chacun pouvait accéder à des méthodes de l'autre, mais cela jette beaucoup d'avertissements Xcode. Cela semble aussi une solution très inélégante.
Quelle est la bonne façon de résoudre ce problème?
Merci pour votre réponse. J'ai changé mon code pour utiliser '@ class'. Mais je reçois encore des avertissements impliquant ce qui suit: En classe A, j'ai 'NSString * appName statique ';' en dehors de '@ interface', et maintenant je reçois un avertissement qui dit" appName "défini mais non utilisé." Que signifie cet avertissement et pourquoi le reçois-je? – Chetan
Vous pouvez apprendre à déclarer des variables globales en C. Ce lien http://stackoverflow.com/questions/496448/comment-utiliser- correctement-le-exter-keword-in-c pourrait être utile. En un mot, dans 'Ah', écrivez' extern NSString * appName; ' Dans' Am', écrivez '#import" Ah "' et ensuite 'NSString * appName;' Enfin, si vous voulez vous référer à appName de 'Bh', faites simplement' #import "Ah" 'dans' Bh'. Je suppose que vous voulez avoir une variable de classe comme C++, mais 'static' en C ou Objective-C est quelque chose de différent, et cela fonctionne différemment. – Yuji
En fait, après quelques recherches, la façon correcte de déclarer les variables au niveau de la classe est la suivante: 'static NSString * myString' dans A.m. Référence: http://stackoverflow.com/questions/1063229/objective-c-static-class-level-variables – Chetan