Une variable commune à toutes les instances d'un même objet ?
iShadow
Membre
Hello à tous,
ça fait un bail que je n'ai pas posté ici
J'essaye de me remettre à l'Obj-C, et depuis plusieurs heures je suis bloqué sur un truc... Ne vous moquez pas, la solution est sans doute tout simple ^^
Alors j'ai un controller A qui gère un NSTableView et un controller B qui gère l'ensemble de l'interface IB (sauf les différents NSTableView).
Mon controller A a un NSMutableArray et le controller B voudrait envoyer des infos au controller A pour que celui-ci ajoute des infos dans son NSMutableArray.
Comment faire ?
J'ai essayé de créer une méthode dans le controller A du genre :
qui est appelée par le controller B... Mais à chaque fois mon NSMutableArray renvoit (null)...
Help ? :why?:
ça fait un bail que je n'ai pas posté ici
J'essaye de me remettre à l'Obj-C, et depuis plusieurs heures je suis bloqué sur un truc... Ne vous moquez pas, la solution est sans doute tout simple ^^
Alors j'ai un controller A qui gère un NSTableView et un controller B qui gère l'ensemble de l'interface IB (sauf les différents NSTableView).
Mon controller A a un NSMutableArray et le controller B voudrait envoyer des infos au controller A pour que celui-ci ajoute des infos dans son NSMutableArray.
Comment faire ?
J'ai essayé de créer une méthode dans le controller A du genre :
- (void)addStringInArray:(NSString *)aString;
qui est appelée par le controller B... Mais à chaque fois mon NSMutableArray renvoit (null)...
Help ? :why?:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
• mettre IBOutlet id controllerA; dans l'interface de controllerB
• connecter cet outlet dans le nib
• puis dans le code de controllerB : [controllerA addString:aString]
Ne pas oublier d'initialiser la NSMutableArray dans ControllerA
Par contre, je ne comprends pas le titre de ton post.
En fait, je pensais que la solution consistait à faire une créer une variable qui soit commune à toutes les instances du controller A, car dans ce cas j'aurais pu initialiser autant de fois que je veux le controller A à partir du B pour appeler la méthode...
Je vais tester ta technique de suite.
Merci !!
Il doit n'y avoir qu'une seule instance de ControllerA et une seule NSMutableArray pour que cela marche.
Je dois déclarer addString où ça ? Je l'ai fait dans le header du controller A...
@interface ControllerA : ... {
NSMutableArray * modelArray;
}
-(void) addString:(NSString *) aString ;
......
@end
@class ControllerA;
@interface ControllerB : ... {
IBOutlet ControllerA * controllerA;
}
...
@end
#import "ControllerA.h"
@implementation ControllerB
...
@end