Pourquoi la deuxième ligne de la boucle (celle de a.retainCount) ne va pas planter (en raison d'un mauvais accès)?Pourquoi cela ne plante pas?
NSArray* a0 = @[[NSMutableString stringWithString:@"a"]];
NSArray * arr = [NSArray arrayWithObject:a0];
[a0 release];[a0 release];
for (NSArray* a in arr)
{
//NSLog(@"%d", (a == a0));
NSLog(@"RC: %d", a.retainCount);
}
mais il se bloquerait si la première ligne dans la boucle (a == a0 un) n'est pas commentée.
Ce serait certainement tomber en panne lorsque la piscine autorelease est drainée, mais je suis particulièrement poser des questions sur la deuxième ligne en boucle, et non après.
Quelqu'un peut-il expliquer s'il vous plaît?
Pouvez-vous expliquer ce que cela a à voir avec 'xcode'? – Popeye
Est-ce une question de devoirs? Nous ne sommes pas ici pour faire vos devoirs. – Popeye
Pourquoi lâchez-vous l'objet 'a0' quand vous ne le possédez pas? Il n'y a pas de 'alloc',' new' ou 'copy', donc vous êtes sur le relâcher. Cela peut être la raison pour laquelle il se bloque lorsque vous exécutez le journal égal, car il pointe vers une adresse mémoire non valide. – rckoenes