2009-11-05 6 views
2
NSMutableArray *images = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"JGirl 01.jpg"], 
    [UIImage imageNamed:@"JGirl 03.jpg"], ... , 
    [UIImage imageNamed:@"JGirl 48.jpg"], 
    nil]; 

self.view = [[[SlideShowView alloc] initWithImages:images byIndex:index] autorelease]; 

supposons que mes images contiennent 48 objets mais lorsque je les images de débogage ont seulement 23 objets.Problème avec NSMutableArray arrayWithObjects:

Pourquoi toutes mes images ne sont-elles pas chargées?

+0

Je ne vois pas de problèmes évidents avec la façon dont vous créez la matrice. Peut-être devriez-vous aussi publier la méthode initWithImages: byIndex: afin que nous puissions voir ce qui s'y passe. Il serait également utile de montrer où vous inspectez le contenu du tableau. – nduplessis

+1

Vous devez utiliser initWithContentOfFile :, imageNamed: utilise beaucoup de mémoire. – gcamp

Répondre

9

Cela ressemble à un problème avec une terminaison nulle. Si l'un de vos objets image (le 24, probablement) revient à zéro en raison d'une faute de frappe dans le nom ou d'un fichier image corrompu/inexistant, il agira comme le dernier "nil" qui termine la liste et votre tableau va tout ignorer après ça. Il est un écueil commun avec arrayWithObjects: et dictionaryWithObjectsAndKeys:

+0

Cela a du sens – nduplessis

1

Vous devriez vraiment pas chargeront que de nombreuses images en mémoire sur l'iPhone OS, quand vous faites que vous devez charger toute représentation RVB de l'image, ce qui n » est pas T vraiment quelque chose que vous voulez faire en considérant les contraintes de ressources sur l'appareil.

Questions connexes