Вопрос

Итак, я объявляю NSMutableArray для хранения 5 UIImageViews.

.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

В файле .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
}

Итак, мой вопрос: почему это происходит? Почему он не собирает все объекты в массиве? Я не очень хорошо разбираюсь в программировании на Objective-C, поэтому я был бы признателен, если бы кто-то мог подсказать мне здесь. Спасибо.

Это было полезно?

Решение

Потому что вы не связали IBOutlets с их представлениями в Интерфейсном Разработчике. Похоже, вы, скорее всего, подключили img1 , но не подключили img2 , поэтому img2 равен nil , что обозначает конец списка объектов для -initWithObjects: , даже если более поздние выходы подключены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top