J'ai une petite application iPhone qui a un bouton sur la première vue. Lorsque je sélectionne ce bouton, je charge ma nouvelle vue qui contient une image. J'utilise actuellement le code suivant pour charger l'image à partir d'une source en ligne sur un thread séparé, tout en permettant à l'utilisateur de continuer à contrôler l'application:NSAutoreleasePool problèmes sur l'iPhone
- (void) loadImageTest
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSURL *url = [[NSURL alloc] init];
url = [NSURL URLWithString:logoPath];
NSData *data = [[NSData alloc] init];
data = [NSData dataWithContentsOfURL:url];
loadingImage = [UIImage imageWithData:data];
titleLogoImage.image = loadingImage;
//[pool drain];
[pool release];
}
Ceci est appelé à partir de cette ligne de code dans la nouvelle vue de INIT:
[NSThread detachNewThreadSelector:@selector(loadImageTest) toTarget:self withObject:nil];
maintenant, cela fonctionne très bien (ish), mais si je ferme la nouvelle vue, puis charger un nouveau à nouveau en succession rapide (ou juste après les salles, dans certains cas), il bombardera avec le classique EXC_BAD_ACCESS. Je suis sûr que cela est dû au code dans le pool de threads, mais quelqu'un peut-il voir pourquoi cela se produit?
Merci
Les zombies vous sauver. http://www.cocoadev.com/index.pl?NSZombieEnabled –