|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Futur Membre du Club
![]() Développeur Web Inscription : février 2012 Messages : 21 ![]() |
Bonjour, voila mon soucis
Je voudrais crée une variable globale à toutes les classes de mon applications, me documentant sur le sujet voila ce que je fait VCHome.h Code :
Code :
Cette erreur me tombe dessus quand je compile Code :
|
||||||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : septembre 2006 Messages : 2 375 ![]() |
Citation:
il est dans quel fichier .m ? |
|
|
|
00
|
|
|
#3 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : février 2012 Messages : 21 ![]() |
Nulle part car c'est une variable global et si je veux le mettre dans n'importe qu'elle endroit dans le code xcode m'affiche
Code :
|
||
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé
![]() Inscription : septembre 2006 Messages : 2 375 ![]() |
Citation:
en C et donc aussi en Objective-C et Objective-C++, vous déclarez dans le .h le nom et le type de la variable comme étant alloué ailleurs : et dans le .c, le .m ou .mm le message "Interface type cannot be statically allocated" apparaît dans les conditions suivantes : vous avez déclaré une classe ou une interface en Objective-C et vous déclarez ensuite une variable en oubliant le "*" pour indiquer "pointeur sur", par exemple : au lieu de Les classes, interfaces, protocoles en Objective-C sont toujours allouées dynamiquement contrairement au C++ qui admet les 2. Et Objective-C çà reste du C : donc "*" pour les pointeurs... la syntaxe "à la Java" ne passe pas pour les déclarations, par contre à l'invocation : "myObject.itsProperty" fonctionnera aussi bien que "myObject->itsProperty", pour peu que vous utilisiez correctement les accessors (@synthetize, @property et C°). |
|||
|
|
10
|
|
|
#5 |
|
Futur Membre du Club
![]() Développeur Web Inscription : février 2012 Messages : 21 ![]() |
Salut, merci pour la réponse,
Mon problème n'est pas réglé car je veux que ma variable "chaton" qui est dans VCHome est la même valeur dans VCDetailChatAvecMembre. Avec ta solution sa me résous mon soucis de "linker" mais pas mon soucis de variable. Si je re-déclare ma variable "chaton" dans VCDetailChatAvecMembre elle n'a plus la valeur qu'elle avait dans le VCHome (normal tu vas me dire). Donc mon soucis c'est, comment je peux avoir cette variable (qui est dynamique) dans 2 classes différentes avec la même valeur ? |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : septembre 2006 Messages : 2 375 ![]() |
un seul NSDictionary *chaton; dans un seul .m évidemment
d'ailleurs s'il n'y a plus de problème de link c'est que c'est le cas sinon vous auriez soit un undefined variable soit un duplicate variable... |
|
|
10
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : février 2012 Messages : 21 ![]() |
Désolé de te contredire, mais je n'ai plus d'erreur de "linker" quand je déclare ma variable dans les 2 .m sinon j'obtiens ceci quand je compile
Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : septembre 2006 Messages : 2 375 ![]() |
Vous êtes certain que tous les fichiers .m sont bien inclus dans toutes les cibles du projet ?
|
|
|
10
|
|
|
#9 |
|
Futur Membre du Club
![]() Développeur Web Inscription : février 2012 Messages : 21 ![]() |
C'est le fait que dans le "file inspector" du fichier il y a bien le projet coché dans l'onglet "target Membership" alors oui
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : septembre 2006 Messages : 2 375 ![]() |
testé dans un projet vierge : 1 seule variable dans un .m et accessible depuis l'autre qui inclus le .h contenant le "extern" : pas de problème, cela compile et link correctement.
je ne sais pas ce que vous avez fait mais le .m qui contient la déclaration de la variable n'est pas compilé pour l'architecture armv7 : probablement un Build setting sur ce .m |
|
|
10
|
|
|
#11 |
|
Futur Membre du Club
![]() Développeur Web Inscription : février 2012 Messages : 21 ![]() |
Ok merci pour tes réponses, pour ma variable disponible à toutes les classes, j'utilise l'appDelegate, c'est plus propre et sa fait plus objet ^^.
Je met le post en résolu |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com