Question

Je déclare donc qu'un NSMutableArray contient 5 UIImageViews.

fichier .h:

@interface ImageDisplay : UIViewController {
    IBOutlet UIImageView *img1;
    IBOutlet UIImageView *img2;
    IBOutlet UIImageView *img3;
    IBOutlet UIImageView *img4;
    IBOutlet UIImageView *img5;
    NSMutableArray *imageHolderArray;
}

@property (nonatomic, retain) IBOutlet UIImageView *img1;
@property (nonatomic, retain) IBOutlet UIImageView *img2;
@property (nonatomic, retain) IBOutlet UIImageView *img3;
@property (nonatomic, retain) IBOutlet UIImageView *img4;
@property (nonatomic, retain) IBOutlet UIImageView *img5;
@property (nonatomic, retain) IBOutlet NSMutableArray *imageHolderArray;
@end

Dans le fichier .m:

//All objects are synthesized, just easier not to crowd the screen

- (void)viewDidLoad {
    [super viewDidLoad];
    imageHolderArray = [[NSMutableArray alloc] initWithObjects: img1,img2,img3,img4,img5,nil];
    NSLog(@"imageHolderArray count: %i",[imageHolderArray count]); //Returns count of 1
}

Ma question est donc la suivante: pourquoi cela se produit-il? Pourquoi ne récupère-t-il pas tous les objets du tableau? Je ne suis pas très familiarisé avec la programmation Objective-C, je vous serais donc reconnaissant si quelqu'un pouvait me renseigner ici. Merci.

Était-ce utile?

La solution

Parce que vous n'avez pas connecté les IBOutlets à leurs vues dans Interface Builder. On dirait que vous avez probablement câblé img1 , mais n'avez pas câblé img2 , de sorte que img2 est nil , ce qui marque le fin de votre liste d’objets pour -initWithObjects: même si les derniers points de vente sont câblés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top