Pregunta

Así que estoy declarando un NSMutableArray para contener 5 UIImageViews.

.h archivo:

@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

En el archivo .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
}

Entonces mi pregunta es, ¿por qué está sucediendo esto? ¿Por qué no está recogiendo todos los objetos en la matriz? No conozco bien la programación de Objective-C, por lo que agradecería que alguien me diera una pista aquí. Gracias.

¿Fue útil?

Solución

Porque no conectó los IBOutlets a sus vistas en Interface Builder. Parece que probablemente conectó img1 , pero no conectó img2 , por lo que img2 es nil , que marca el final de su lista de objetos para -initWithObjects: incluso si los enchufes posteriores están conectados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top