Sans savoir ce que vous faites exactement, il est difficile de dire, mais il semble que vous faites:
for (...)
[[Foo alloc] init];
Dans ce cas, vous leak, comme si vous avez
for (...)
malloc(...)
ou
for (...)
new ...;
Si vous êtes dans un environnement de GC ce n'est pas un problème (en Obj-C 2, avec GC a permis de retenir/relea se n'a aucun effet du tout). Si vous n'utilisez pas le GC, vous fuyez tous les objets que vous allouez.
Sinon, si vous faites quelque chose comme
for (...)
[[[Foo alloc] init] autorelease]
Vous ne coulera pas indéfiniment, mais aucun de vos objets instanciés seront recueillis jusqu'à ce que vous revenez en haut de la boucle d'événements (c.-à. Votre gestionnaire d'événements finit). Dans ce cas, vous pouvez utiliser beaucoup de mémoire à la fois, sans pour autant le perdre à long terme.
J'appelle cette méthode à chaque fois qu'une minuterie se déclenche, c'est-à-dire quelques fois par seconde. Je ne suis pas dans un environnement GC. Merci. –
mais que faites-vous du code? '[[Foo alloc] init]' ou '[[[Foo alloc] init] autorelease]'? – olliej