Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Works on iPhone Simulator but not on device

Here I addsubviews (UIImageViews) it all works on the simulator but not on the device (iOS 4.1) wtf!?

- (void)addChips:(int)value {
UIImage *chipImage;
switch (value) {
    case 5:
        chipImage = [UIImage imageNamed:@"5chip"];
        break;
    case 25:
        chipImage = [UIImage imageNamed:@"25chip"];
        break;
    case 100:
        chipImage = [UIImage imageNamed:@"100chip"];
        break;
    case 500:
        chipImage = [UIImage imageNamed:@"500chip"];
        break;
    default:
        break;
}

int chipCount = [chipsOnBet count];
UIImageView *addChip = [[UIImageView alloc] initWithImage:chipImage];
addChip.opaque = YES;
addChip.frame = CGRectMake((kStackOffset * chipCount) + 131, 268, 57, 57);
[self.view addSubview:addChip];
[chipsOnBet addObject:addChip];
[addChip release];
}
like image 691
Daniel Granger Avatar asked Oct 29 '10 08:10

Daniel Granger


2 Answers

  1. Make sure you write the correct file names, iOS is case sensitive, simulator is not.
  2. Make sure you have the proper retina files if you test on iPhone4
like image 93
Alin Avatar answered Sep 20 '22 18:09

Alin


I found the answer in the documentation:

Case-sensitivity: iPhone OS uses a case-sensitive file system, unlike the Simulator which uses a case-insensitive file system by default. Make sure the case-sensitivity of resources accessed within code matches the filename case-sensitivity.

For example, if our filename is "YourExampleImage.png":

Good: [UIImage imageNamed:@"YourExampleImage.png"]

Bad: [UIImage imageNamed:@"YourExampleImage.PNG"]

Bad: [UIImage imageNamed:@"yourexampleimage.png"]

So I just have to ensure my image names are the same case as my resources. So in my case I should of put 5Chip instead of 5chip.

like image 41
Daniel Granger Avatar answered Sep 21 '22 18:09

Daniel Granger