- (UIImage*)returnRandomBackground{
int selectedImage = (arc4random() % 4) + 1;
UIImage *imageToReturn;
if (selectedImage == 1) {
imageToReturn = Image1;
}
else if (selectedImage == 2) {
imageToReturn = Image2;
}
else if (selectedImage == 3) {
imageToReturn = Image3;
}
else if (selectedImage == 4) {
imageToReturn = Image4;
}
return imageToReturn;
}
UnDefined or garbage value returned to caller.
To me this code looks legal, whats wrong with it?
The compiler will think that it’s possible that there’s a
selectedImage = 5, which means there’s a possibility ofimageReturnremaining unassigned. You’ll have to change the lastelse ifto just anelseto make sureimageReturnis always assigned.Look at what the code would do if
selectedImage = 5. It’ll break.