Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

initialisation NSArray

Discussion dans 'Développement Mac' créé par jannold2, 31 Août 2008.

  1. jannold2

    jannold2 Membre junior

    Inscrit:
    11 Avril 2007
    Messages:
    55
    J'aime reçus:
    0
    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 :
    Code (Text):

    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é
    Code (Text):

    BOOL b = YES;
    NSArray *objects = [NSArray arrayWithObjects:&b, @"toto", nil];
     
    mais ca ne marche pas non plus

    aidez moi ! :)
    merci d'avance
    Thomas
     
  2. ntx

    ntx Vénérable sage
    Club MacG

    Inscrit:
    15 Octobre 2004
    Messages:
    12 007
    J'aime reçus:
    361
    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.
     
  3. jannold2

    jannold2 Membre junior

    Inscrit:
    11 Avril 2007
    Messages:
    55
    J'aime reçus:
    0
    ok, mais tu fais comment ???
    c'est peut etre pas compliqué, mais je sais pas comment faire
    merci
     
  4. ntx

    ntx Vénérable sage
    Club MacG

    Inscrit:
    15 Octobre 2004
    Messages:
    12 007
    J'aime reçus:
    361
    Tu crées un NSNumber :
    Code (Text):

    NSArray *objects = [NSArray arrayWithObjects:YES, NO, [NSNumber initWithInt: 5], @"toto", nil];
     
     
  5. Céroce

    Céroce Membre émérite

    Inscrit:
    6 Octobre 2004
    Messages:
    949
    J'aime reçus:
    32
    Attention, YES et NO ne sont pas non plus des objets, ça sera plus exactement:

    Code (Text):

    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.
     
  6. jannold2

    jannold2 Membre junior

    Inscrit:
    11 Avril 2007
    Messages:
    55
    J'aime reçus:
    0
    merci ca marche nickel
     
Chargement...