iOS5 et auto counting mode

romac

Membre confirmé
2 Septembre 2005
125
3
31
Bonjour à tous

j'ai le code suivant

Bloc de code:
 NSMutableArray __strong *ligne=[[NSMutableArray alloc]initWithCapacity:1 ];
            for (int j=0; j<largeur; j++) {
                Celule  __strong *c = [[Celule alloc]init:j y:i];
                [ligne addObject:c];
            }

et en debugant je remarque qu'a chaque fin de boucle l'objet c qui a été ajouté est supprimé a cause du garbage collector je pense
ainsi dans le debugger j'ai : out of scope !
pourquoi ?

merci d'avance
 

CathyGYM

Membre confirmé
28 Novembre 2010
160
1
Si je ne m'abuse, c'est normal, puisque tu déclare c à l'intérieur de la boucle... De même que j n'est plus connu si tu veux en connaitre la valeur à l'extérieur de ta boucle...
Je ne crois pas que le garbage collector y soit pour grand chose...:D:D
 

romac

Membre confirmé
2 Septembre 2005
125
3
31
Si je ne m'abuse, c'est normal, puisque tu déclare c à l'intérieur de la boucle... De même que j n'est plus connu si tu veux en connaitre la valeur à l'extérieur de ta boucle...
Je ne crois pas que le garbage collector y soit pour grand chose...:D:D

mais je dois faire comment
en java / C# ca marche ce systeme ?

comment je peut faire l'équivalent de ca :

Bloc de code:
List<Contact> listeContact=new List<Contact>();
for(int i=0;i<3;i++){
Contact c=new contact("toto "+i.toString());
listeContact.add(c);
}
 

Nyx0uf

Zetsubou Sensei
Club MacG
1 Janvier 1970
805
55
The net is vast and infinite.
whine.fr
Si ARC est activé (Xcode 4.2) c recevra un message release à la fin de la boucle, mais il sera dans ton array.

Si ARC est désactivé, y a risque de memory leak.

Après je vois pas le problème, si tu veux accèder à tes objets

Bloc de code:
Celule* c = [array objectAtIndex:index];


PS : Les __strong ne sont pas obligatoires, __strong est le comportement par défaut.