< SOLVED >
I created my project using Xcode 6. I had such a piece of code there:
.h file:
@property (weak, nonatomic) IBOutlet UIImageView *imageView1;
@property (weak, nonatomic) IBOutlet UIImageView *imageView2;
@property (weak, nonatomic) IBOutlet UIImageView *imageView3;
@property (weak, nonatomic) IBOutlet UIImageView *imageView4;
@property (weak, nonatomic) IBOutlet UIImageView *imageView5;
@property (weak, nonatomic) IBOutlet UIImageView *imageView6;
@property (weak, nonatomic) IBOutlet UIImageView *imageView7;
.m file:
self.featureViews = [NSMutableArray array];
[self.featureViews addObject:self.imageView1];
[self.featureViews addObject:self.imageView2];
[self.featureViews addObject:self.imageView3];
[self.featureViews addObject:self.imageView4];
[self.featureViews addObject:self.imageView5];
[self.featureViews addObject:self.imageView6];
[self.featureViews addObject:self.imageView7];
All image views were created using the interface builder and everything worked fine.
But recently I updated to Xcode 7, and I had a necessity to add one more UIImageView
.
I did totally the same thing: created the imageView8 in IB, created a new referencing outlet and added the following string
[self.featureViews addObject:self.imageView8];
To my great astonishment now the app falls with the -[__NSArrayM insertObject:atIndex:]: object cannot be nil error when adding imageView8.
2015-09-22 16:20:13.063 XXX[1752:38656] **Image view 7 <UIImageView: 0x7f8396bd2e40; frame = (251 6; 33 33); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x7f8396bd2fe0>>**
2015-09-22 16:20:13.064 XXX[1752:38656] **Image view 8 (null)**
Does anyone have any idea why this may happen?
Update
I just simply had to reset the iOS simulator and perform a full build to solve the problem...