iPhone UIImageView Array
-
22-07-2019 - |
Вопрос
Итак, я объявляю 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:
, даже если более поздние выходы подключены.
Не связан с StackOverflow