# initialisation NSArray



## jannold2 (31 Août 2008)

Bonjour,
j'ai un petit probleme assez récurrent en fait :
la plupart des méthodes des objets demandent comme paramètres des pointeurs.
Mais comment faire pour les entiers ou booléens ?

ex : 

```
NSArray *objects = [NSArray arrayWithObjects:YES, NO, 5, @"toto", nil];
```

ne fonctionne pas. @"unechaine" marche toujours bien mais pour les nombres je n'ai pas trouvé comment
j'ai essayé

```
BOOL b = YES;
NSArray *objects = [NSArray arrayWithObjects:&b, @"toto", nil];
```

mais ca ne marche pas non plus

aidez moi ! 
merci d'avance
Thomas


----------



## ntx (31 Août 2008)

Tu ne peux dans mettre dans un NSArray et les autres conteneurs que des objets qui dérivent de NSObject. Donc pour les types standards C il faut passer par des "wrapper" : pour les nombres ce sera la classe NSNumber.


----------



## jannold2 (31 Août 2008)

ok, mais tu fais comment ???
c'est peut etre pas compliqué, mais je sais pas comment faire
merci


----------



## ntx (31 Août 2008)

Tu crées un NSNumber : 

```
NSArray *objects = [NSArray arrayWithObjects:YES, NO, [NSNumber initWithInt: 5], @"toto", nil];
```


----------



## Céroce (1 Septembre 2008)

Attention, YES et NO ne sont pas non plus des objets, ça sera plus exactement:


```
NSArray *objects = [NSArray arrayWithObjects:[NSNumber numberWithBool:YES], [NSNumber numberWithBool:NO], [NSNumber numberWithInt: 5], @"toto", nil];
```

Note: Le fait d'ajouter un objet à un NSArray lui envoie un [retain]. Détruire le NSArray provoque l'envoi d'un [release] à tous les objets qu'il contient.


----------



## jannold2 (1 Septembre 2008)

merci ca marche nickel


----------

