NSApplication

aLittleWoodElfe

Membre confirmé
28 Février 2004
81
1
Alors voila mon problème (décidément j'en ai tout le temps ;-) :

J'ai des variables existant dans mon fichier main.m, dans la fonction main justement. Cette fonction lance comme d'habitude la fonction NSApplicationMain(argc, argv). Ma question comment faire pour passer mes variables en paramètre à NSApplication de telle sorte que je puisse les retrouver soit dans mon Controller soit dans un object de type modèle ?

Tout cela tourne donc autour de la classe NSApplication et de ce qu'elle fait précisément, j'ai lu toute la description de cette classe sur le site Apple, sans comprendre précisément comment résoudre ma question.

Comment récupère-t-on argc et argv dans un autre objet ?

A l'inverse comment depuis un objet quelconque de mon application écrire sur la sortie standard ? (que j'ai redirigé sur un file descriptor vers un autre programme en C).
 
Je te conseille pas de bidouiller les variables en ligne de commande 'argc' et 'argv', tu auras du mal à les retouver après.

De toute façon la fonction NSApplicationMain() ne fait pas grand chose (en gros):
<font class="small">Code:</font><hr /><pre>
[NSApplication sharedApplication];
[[NSBundle mainBundle] loadNibName:mad:"MainMenu.nib"];
[NSApp run];
</pre><hr />

Si tu veux passer des paramètres depuis ta fonction main() je te conseille de créer des variables globales, que tu définieras dans main() et auxquelles tu pourra accéder depuis d'autres classes...
 
Pour quelles raisons as-tu des variables dans la fonction main ?! es-tu vraiment obligé de faire ce que tu fais là ?! car il semble qu'il serait mieux de ne mettre aucun code ici, mais de le mettre dans le awakeFromNib d'un controlleur principal par exemple.
 
Effectivement le coup des variables globales est une bonne idée, adoptée.

En fait je lance mon processus depuis un autre via un popen, en ouvrant donc un file descriptor entre les deux processus. Mais il me semble que je n'ai alors accès au fd que dans mon main et pas dans mon code Obj-C plus haut... quoique en y réfléchissant c'est idiot ce que je dit là, je vais tester un printf dans un objet tiens pour voir.
Enfin je testerais lundi.