iPhone UIImageView Array
-
22-07-2019 - |
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.
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