Je fais un chargement paresseux d'images dans un tableau lorsque l'application a été chargée. J'ai essayé d'utiliser un NSMutableArray et un NSArray (je n'ai pas besoin de modifier le tableau une fois qu'il a été créé) mais le dernier se bloque sur moi.Chargement des images dans NSArray en utilisant les plantages initWithObjects mais pas avec NSMutableArray?
...
[self performSelectorInBackground:@selector(loadImageArrays) withObject:nil];
...
- (void)loadImageArrays {
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *fileName;
imageArray = [[NSMutableArray alloc] init];
for(int i = 0; i <= x; i++) {
fileName = [NSString stringWithFormat:@"image_0000%d.png", i];
[imageArray addObject:[UIImage imageNamed:fileName]];
}
[pool drain];
}
vs
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
imageArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"image_00000.png"],
[UIImage imageNamed:@"image_00001.png"],
[UIImage imageNamed:@"image_0000X.png"],
nil];
[pool drain];
NSZombieEnabled = OUI me dit que [UIImage retain] a été envoyé à l'instance désalloué lorsque vous utilisez ce dernier bout de code. Les deux tableaux ont une propriété (nonatomic, retain) dans mon fichier h. Pourquoi les images ne sont-elles pas conservées par NSArray?
Même si je comprends la réponse, comment pourrais-je aller sur si je voulais utiliser Core Graphics pour charger les images dans un thread d'arrière-plan ? – hwaxxer
Sur SO, si une réponse vous conduit à plus de questions, vous devez créer un nouveau message. –
Je suis désolé. Excellente réponse, cependant. Merci beaucoup! – hwaxxer