Bonjour,
Je suis assez nouveau en Objective-C et j'ai quelques problèmes concernant les NSMutableArray.
J'ai une classe agent qui définit deux propriétés NSMutableArray que j'initialise dans le constructeur de la classe. Mon problème vient du fait que lorsque récupère l'instance de mon agent, le débugger me dit que mes NSMutableArray sont des NSObjects et il n'arrive pas à m'afficher le nombre d'objets contenus dedans.
De plus lorsque j'ajoute un objet au tableau, il ne me l'insère pas.
Qu'est-ce qu'il ne va pas ?
Je vous joins mon code.
Agent.h
Agent.m
AllerVers.h
Utilisation
Je suis assez nouveau en Objective-C et j'ai quelques problèmes concernant les NSMutableArray.
J'ai une classe agent qui définit deux propriétés NSMutableArray que j'initialise dans le constructeur de la classe. Mon problème vient du fait que lorsque récupère l'instance de mon agent, le débugger me dit que mes NSMutableArray sont des NSObjects et il n'arrive pas à m'afficher le nombre d'objets contenus dedans.
De plus lorsque j'ajoute un objet au tableau, il ne me l'insère pas.
Qu'est-ce qu'il ne va pas ?
Je vous joins mon code.
Agent.h
Bloc de code:
@interface Agent : NSObject {
//Déclaration des attributs
Etat *etat;
NSColor *couleur;
bool estVivant;
bool estEnPause;
NSThread *thread;
NSMutableArray *actionsConnues;
NSMutableArray *actionsEnCours;
}
//Définition des propriétés
@property(retain, readonly) NSColor *couleur;
@property(retain, readonly) NSThread *thread;
@property(assign, readwrite) bool estVivant;
@property(assign, readwrite) bool estEnPause;
@property(retain, readwrite) NSMutableArray *actionsConnues;
@property(retain, readwrite) NSMutableArray *actionsEnCours;
//Définition des méthodes
- initWithColor:(NSColor *)color;
Agent.m
Bloc de code:
@implementation Agent
// Création des getter/setter des propriétés
@synthesize etat;
@synthesize couleur;
@synthesize thread;
@synthesize estVivant;
@synthesize estEnPause;
@synthesize actionsConnues;
@synthesize actionsEnCours;
- (void)Vie
{
}
- (id)init
{
return [self initWithColor:[NSColor blackColor]];
}
- (id)initWithColor: (NSColor *)color
{
self = [super init];
if (self) {
//Positionnement de la couleur
couleur = color;
etat = [[Etat alloc] init];
//Faire Vivre l'agent
estVivant = YES;
estEnPause = YES;
//Création de la liste des actions connues
actionsConnues = [[NSMutableArray alloc] init];
//Création de la liste des actions en cours
actionsEnCours = [[NSMutableArray alloc] init];
//Création du Thread
thread = [[NSThread alloc] initWithTarget:self selector:@selector(Vie) object:nil];
[thread start];
}
return self;
}
@end
AllerVers.h
Bloc de code:
@interface AllerVers : NSObject {
NSString *action;
NSPoint arrivee;
}
@property(retain, readwrite) NSString *action;
@property(assign, readwrite) NSPoint arrivee;
@end
Utilisation
Bloc de code:
Agent *agent = [[Agent alloc] initWithColor:[NSColor redColor]];
agent.etat.position = NSMakePoint(10, 10);
AllerVers *action = [[AllerVers alloc] init];
action.arrivee = NSMakePoint(40, 50);
action.action = @"AllerVers(40,50)";
[agent.actionsConnues addObject:action];