Работает на iPhone Simulator, но не на устройстве

здесь я addsubviews (UIImageViews) все это работает на симуляторе, но не на устройстве (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];
}

3 ответов


  1. убедитесь, что вы пишете правильные имена файлов, iOS чувствительна к регистру, симулятор-нет.
  2. убедитесь, что у вас есть правильные файлы retina, если вы тестируете на iPhone4

Я нашел ответ в документации:

чувствительность к регистру: iPhone OS использует файловая система с учетом регистра, в отличие от Симулятор, который использует файловая система без учета регистра по умолчанию. Убедитесь, что регистра ресурсов в коде соответствует имени файла чувствительность к регистру.

например, если наше имя "YourExampleImage.png":

Добрый: [Объектами UIImage imageNamed:@ " YourExampleImage.png"]

Плохой: [Объектами UIImage imageNamed:@ " YourExampleImage.PNG"]

Плохой: [Объектами UIImage imageNamed:@ " yourexampleimage.png"]

поэтому я просто должен убедиться, что мои имена изображений совпадают с моими ресурсами. Поэтому в моем случае я должен поставить 5Chip вместо 5chip.


вы собираетесь использовать свое изображение, только имена. Не с расширением изображения. Вы должны использовать полное имя изображения как

[UIImage imageNamed:@"a.png"];

убедитесь, что имя изображения совпадает с именем, сохраненным в папке ресурсов.